最近项目在用kafka,特此将步骤记录下来
搭建kafka需要先搭建zookeeper集群,由于机器有限,所以都在一台机器上完成
一、zookeeper搭建
1、zookeeper-3.4.10.tar.gz 版本
2、配置:
(1)将安装包放到zookeeper1 、zookeeper2、zookeeper3三个文件夹中,分别解压
解压: >tar -zxvf zookeeper-3.4.10.tar.gz
(2)分别对三个文件夹做如下操作:
1)在解压好的 zookeeper-3.4.10.文件夹下面新建zkdata文件夹和zkdatalog文件夹
2)在conf目录下,复制zoo_sample.cfg文件,并命名为zoo.cfg,官方配置文件,打开zoo.cfg文件进行修改:
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181(针对于其他两台,分别为2182,2183, 三个要区别开)
dataDir=/home/dmcl216/zookeeper1/zookeeper-3.4.10/zkdata
dataLogDir=/home/dmcl216/zookeeper1/zookeeper-3.4.10/zkdatalog
server.1=192.168.0.129:2887:3887
server.2=192.168.0.129:2888:3888
server.3=192.168.0.129:2889:3889
保存,其他两个也是这样配置,只不过需要将clientPort修改为2182和2183即可
3)在zkdata文件夹中创建myid文件,并将内容分别置位1,或者2,或者3,根据 server.1, server.2,server.3决定的(一定要记住往myid文件中写入机器数字,否则会出错)
(3)修改系统变量:
>sudo vim /etc/profile
添加zookeeper的系统变量
export ZOOKEEPER1_HOME=/home/dmcl216/zookeeper1/zookeeper-3.4.10
export PATH=${ZOOKEEPER1_HOME}/bin:$PATH
export ZOOKEEPER2_HOME=/home/dmcl216/zookeeper2/zookeeper-3.4.10
export PATH=${ZOOKEEPER2_HOME}/bin:$PATH
export ZOOKEEPER3_HOME=/home/dmcl216/zookeeper3/zookeeper-3.4.10
export PATH=${ZOOKEEPER3_HOME}/bin:$PATH
(4)可以启动
分别进入bin目录
bin >./zkServer.sh start
查看启动状态:
bin > ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/dmcl216/zookeeper1/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
出现这个即表示启动成功,选举leader成功
二、kafka集群搭建:
1、kafka_2.11-1.1.0.tgz 版本
分别放到kafka1,kafka2,kafka3三个文件夹中进行解压
>tar -zxvf kafka_2.11-1.1.0.tgz
2、在三个文件夹的kafka_2.11-1.1.0下分别创建kafkaLog目录文件夹
3、在config下有配置文件server.properties进行配置:(三个差不多)
broker.id=0(另外两个为1和2,记得修改)
log.dirs =/opt/server/kafka/kafka1/kafkaLog(注意路径不同)
listeners=PLAINTEXT://172.16.2.15:9092
port=9092(另外连个为9093和9094,记得修改)
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
4、在config文件夹下修改consumer.properties
添加:
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
group.id=logGroup
5、启动三个节点
进入到bin目录下,分别启动:
bin >./kafka-server-start.sh ../config/server.properties &
三、验证
1、创建topic来验证是否创建成功
创建topic
./kafka-topics.sh --create --zookeeper 192.168.172.10:2181 --replication-factor 2 --partitions 1 --topic my-topic
参数解释:
--replication-factor 2 // 复制两份
--partitions 1 // 创建1个分区
--topic // 主题为my-topic
-- --zookeeper // 此处为为zookeeper监听的地址
2、创建生产者producer
./kafka-console-producer.sh --broker-list 192.168.172.129:9092 (主机名即可)--topic my-topic //`这个IP地址可以写brokerlist中的任意一个
此时,console处于阻塞状态,可以直接输入数据。
3、 创建消费者
此时要切换到另一台虚拟机的shell界面输入以下命令:
./kafka-console-consumer.sh --bootstrap-server 192.168.172.129:9092 --topic my-topic --from-beginning
此时,一旦有数据生成,此处的console中就会显示数据。