Zookeeper与Kafka集群搭建完整教程
1、首先我们需要在官网上下载好我们需要的kafka,zookeeper版本的安装包。如图,百度搜索zookeeper,点击红圈所示链接进入官网,按照下图步骤点击相应红圈处,到http链接下载随意点击一个下载链接即可,本人是点击最上面的推荐链接,然后进入下载链接后选择对应版本进去进行下载。






2、下载好zookeeper版本后,继续下载kafka。同样百度搜索kafka,进入官网,步骤如下图所示,一步一步来,到最后选择要下载的版本,进行下载。




3、下载完成后,如下图所示

4、下面开始正式安装配置两个组件。
首先将你的压缩包拷到你要安装的服务器主节点上,这里以3台机器为例说明安装:
一般tar.gz或者tar结尾的解压命令是:
tar zxvf 路径+压缩包名称(如:/yybTest/zookeeper.tar.gz) -C 解压路径(如:/yybTest/)

5、解压完成后,可配可不配环境变量,若配的话,
vim /etc/profile 下在最后加上
export ZOOKEEPER_HOME=/yybTest/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
然后,进入到zookeeper的conf目录下修改他的zoo.cfg文件,若没有则将zoo_sample.cfg复制一份改名zoo.cfg,指令是 cp zoo_sample.cfg zoo.cfg
用vim zoo.cfg进入:一般来说最多修改以下配置,特殊要求除外
clientPort=2181 zookeeper的端口号,
注:修改后对应kafka处也要修改
dataDir=/yybTest/zookeeper/data 保存数据目录
dataLogDir=/yybTest/zookeeper/log 保存日志目录
server.1=ip:2888:3888 ip为服务器的ip
server.2=ip:2888:3888 ip为服务器的ip
server.3=ip:2888:3888 ip为服务器的ip
具体如下图:此处我修改了zk的端口号,因为我安装了多个zk,kafka集群

6、修改完后:在/yybTest/zookeeper/data目录下建立一个myid的文本文件 直接vim myid会直接进入,保存后会自动创建这个。在里面写上对应数字1,这里1对上server后面的那数据,不同机器上的myid文件的数字跟各自server后的数据要对应起来,如下图是我的第三个机器的myid文件的内容,后面的kafka brokerid 也要和这个对应上。
然后分发到其他节点:
scp –r /yybTest/zookeeper 机器二ip:/yybTest/
scp –r /yybTest/zookeeper 机器三ip:/yybTest/
最后测试是否安装成功(三台都要启动):
1.进入zookeeper的bin目录,执行sh zkServer.sh start进行启动zookeeper
2.查看状态 进入bin目录,执行sh zkServer.sh status
3.停止 进入bin目录,执行sh zkServer.sh stop
4.重启 进入bin目录,执行sh zkServer.sh restart
出现zookeeper的程序就安装成功了,若没有,去他的log日志下看zookeeper.out日志,锁定问题。
注1:目录换成你自己的
注2:一般的问题就是id对不上,还有就是ip写的有问题,最后还有一个问题,就是需要你去解锁zookeeper的连接数,他默认是60,可以在zoo.cfg中找到他改大些。


7、进入kafka的目录下,更改其下的配置文件
vim config/server.properties
修改broker.id(与上文zk保持一致)
机器一的broker.id=0,机器二的broker.id=1,机器三的broker.id=2
和zookeeper的id对上
修改zookeeper.connect=机器一ip:2181, 机器二ip:2181,机器三ip:2181
Zookeeper端口号记得对应上,别上面改了端口号,这里没改,端口号一定要对应。
再进入本目录下的produce那个文件看看,有没有问题,再去这个目录下的zookeeper的文件看看有没有要改的,默认不用管。
分发集群和zookeeper的一样:scp去分发
启动kafka之前先得确保zookeeper已经启动
在kafka的bin目录下启动
bin/kafka-server-start.sh -daemon config/server.properties(后台启动)
三台都得启动。启动后看到kafka进程即成功。
注:一般问题,meta文件id生成不对报错,去/tmp/kafka-logs/ 修改成对应的。


8、创建一个kafka的topic
在kafka_1.20-0.10.1.0下:bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test_topic
可通过命令:bin/kafka-topics.sh --list --zookeeper localhost:2181查看topic是否创建成功
创建一个console的producer
在kafka_1.20-0.10.1.0下:bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic
创建一个console的consumer
在kafka_1.20-0.10.1.0下:bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test_topic --from-beginning
查看是否消费到producer创建的消息
9、至此,kafka,zk的集群下载搭建,以及验证就全部完成了。