首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

kafka centos 6.7 单机部署

kafka是基于scala语言开发,所以需要java运行环境,下载前请先确认是否已经安装并配置java环境

需要的环境

@1.jdk 1.8

@2.zookeeper 3.4.10

@3.kafka 2.11-0.9.0.0

一.安装JDK1.8

1.查看yum库中的Java安装包,可以看到不同版本的java安装包

2.使用yum安装Java环境

安装java-1.8.0版本的所有相关程序

3.查看刚安装的Java版本信息

二.安装zookeeper

从官网或者镜像下载对应的发行包:

http://www.apache.org/dyn/closer.cgi/zookeeper/

2.1 下载Zookeeper

我这里直接使用wget命令下载3.4.10版本:

2.2 解压Zookeeper

下载后的发行包是格式的使用tar命令解压:

2.3 配置Zookeeper

zookeeper支持两种运行模式:独立模式(standalone)复制模式(replicated)

真正用于生产环境的Zookeeper肯定都是使用复制模式的,这样做可以避免单点问题。想要使用复制模式,但由于没有富余的机器能够使用,所以可以在单台机器上通过配置来使用复制模式,从而模拟真实的集群环境。

由于Zookeeper集群是通过多数选举的方式产生leader的,因此,集群需要奇数个Zookeeper实例组成,也就是说至少需要3台(1台不能算"群" :-] )。

首先,将zookeeper-3.4.10这个目录copy三份,分别为zookeeper-3.4.10-01、zookeeper-3.4.10-02、zookeeper-3.4.10-03,代表着3个实例。

然后分别创建zoo.cfg配置文件,放在对应实例下的conf/目录下,文件内容如下:

下面说明一下需要注意的几点:

dataDir这个是指定实例数据的存放路径,不同的实例要区分开。并且,注释中提醒不要设置为/tmp目录。比如可以分别设为:

clientPort这个是供客户端连接本实例的端口号,不同的实例也要区分。比如,可以分别指定为:2181、2182、2183。

server.这个X可以取数字,用来标识集群中唯一的一个实例。配置了多少个server.就表示集群中有多少个实例。后面值的格式为: 其中,为实例所在的主机IP,这里由于都在一台机器上,所以都指定为本机地址;是集群中实例之间用于数据通信的端口;是集群中实例进行leader选举时使用的通信端口。对于同一实例和是不可相同的。对于同一台机器部署多个实例的情况,不同实例的同一种端口也是需要区分的。

2.4 配置myid文件

前面提到的server.配置项中的就是一个实例的myid,它需要被写在对应实例的/myid文件中。

下面需要在每一个实例指定的目录下创建一个名为myid的文件,文件的内容就是一个数字,对应server.中的X。

比如,这里是这样配置的:在/var/lib/zookeeper-01/myid文件中写入1;在/var/lib/zookeeper-02/myid文件中写入2;在/var/lib/zookeeper-03/myid文件中写入3。

2.5 创建启动和停止的脚本

对于多个实例,分别启动和停止比较麻烦,可以写一个脚本来自动完成这个工作。start-zk-servers.sh的内容:

stop-zk-servers.sh的内容:

启动集群

运行启动脚本:

启动zookeeper服务

默认地,在用户目录(~/)下面会生成Zookeeper的日志文件。从日志中可以看出leader选举的过程和结果。

运行停止脚本:

连接Zookeeper

四、安装Kafka

下载最新版的kafka软件

wget http://apache.opencas.org/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgz

解压缩

tar -xzf kafka_2.11-0.9.0.0.tgz

4.1 启动

首先要进入kafka目录

启动kafka server

4.2 使用Kafka

4.2.1 创建一个Topic 名称为HelloWorld

校验Topic是否创建成功

4.2.2 启动一个Producer并发送消息

可以使用Kafka命令行客户端(获取标准命令行输入并一Message形式发出)发送消息到Kafka集群。默认情况下,每行会单独算作一次消息发出。下例通过该命令行终端发送消息到HelloWorld这个Topic,命令如下:

4.2.3 启动一个Consumer并接受消息

跟4.2.2中类似,同样可以使用Kafka命令行终端来启动一个Consumer(格式化消息到标准输出),命令如下

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180801G1X0B400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券