要搭建一个kafka集群,但是kafka又是基于zookeeper的,所以需要先搭建一个zookeeper集群
环境:centos 7(虚拟机)
jdk :1.8(官网下载)
zookeeper:3.4.9(官网下载即可)
接下来:
1. 解压 tar --zxvf zookeeper-3.4.9.tar.gz
2. 重命名 mv zookeeper-3.4.9 zookeeper
3. 创建文件夹
cd zookeeper
mkdir logs
mkdir data
4. 进入conf文件夹下,复制配置文件zoo_sample.cfg,并将新文件夹命令为zoo.cfg
5. 修改zoo.cfg的内容:vi zoo.cfg
clientPort=2181
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/logs
server.1=192.168.56.72:2881:3881
server.2=192.168.56.73:2881:3881
server.3=192.168.56.74:2881:3881
其中的data和logs文件夹就是之前创建的
6. 创建myid文件,就是在data目录下创建即可
值是面server后面的数字,我的三台虚拟机的myid文件的值分别是1,2,3,和上面的配置对应上了
这样配置就可以了。
验证一下效果:
分别启动一下zookeeper,进入bin目录 ./zkServer.sh start
通过jps查看:
看到QuorumPeerMain就代表成功了,也可以执行./zkServer.sh status
zookeeper已经安装完毕接下来进行kafka的安装:
我用的kafak是 https://archive.apache.org/dist/kafka/0.8.1/kafka_2.9.2-0.8.1.tgz
1.解压:tar -zxvf kafka_2.9.2-0.8.1.tgz 并命名为kafka
2.创建logs文件夹,后面配置会用到
3.修改config文件下的server.properties文件
broker.id=0 //这个值建议与zookeeper里面的myid保持一致
host.name = 192.168.56.72 //本机ip,不要配置为localhost
log.dir= /opt/kafka/logs //刚才创建的logs文件夹
zookeeper.connect = 192.168.56.72:2181,192.168.56.73:2181,192.168.56.74:2181
message.max.byte=5048576 //kafka一条消息容纳的消息最大为多少
default.replication.factor=2 //每个分区默认副本数量
replica.fetch.max.bytes=5048576
4.配置完成后启动kafka
bin/kafak-server-start.sh ./config/server.properties (如需后台启动,加上参数-daemon)
另外如果报错,需要加入slf4j-nop-1.7.6.jar(放置在kafak/lib下面)
附链接:http://www.slf4j.org/dist/slf4j-1.7.6.zip
如果还报错,尝试关闭防火墙,由于用的是centos 7:
systemctl stop firewalld.service
systemctl disable firewalld.service
验证结果:
创建topic
./kafak-topics.sh --create zookeeper 192.168.56.72:2181 --replication-factor 1 --partition --topic check
查看topic列表
./kafka-topics.sh --lst --zookeeper 192.168.56.72:21281
生产者发送消息
./kafak-console-producer.sh --broker-list 192.168.56.72:9092 --topic check
消费者消费消息
./kafka-console-consumer.sh --zookeeper 192.168.56.72:2181 --topic check --from-beginning
实例截图: