多语言展示
当前在线:1346今日阅读:39今日分享:10

Zookeeper与Kafka集群搭建完整教程

kafka与zookeeper作为一种当前常用的消息处理组件,在大数据的应用中是十分常见的,那么如何在服务器上搭建一套kafka与zk的使用集群就成了一种基本技能了,下面我将详细说明相关的下载搭建步骤,让更多的人能够体会到该组件的魅力所在,当然,搭建使用的前提需要服务器上已安装相应的jdk,安装jdk此处不再赘述。
工具/原料
1

CentOS 6或7虚拟机

2

对应kafka,zookeeper版本安装包,本文用的是zookeeper3.4.6,kafka0.10.1.0

方法/步骤
3

下载完成后,如下图所示

4

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

5

解压完成后,可配可不配环境变量,若配的话,vim /etc/profile 下在最后加上export ZOOKEEPER_HOME=/yybTest/zookeeperexport 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进行启动zookeeper2.查看状态   进入bin目录,执行sh zkServer.sh status3.停止    进入bin目录,执行sh zkServer.sh stop4.重启   进入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:2181Zookeeper端口号记得对应上,别上面改了端口号,这里没改,端口号一定要对应。 再进入本目录下的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的集群下载搭建,以及验证就全部完成了。

注意事项
1

注:zk启动问题一般的问题就是id对不上,还有就是ip写的有问题,最后还有一个问题,就是需要你去解锁zookeeper的连接数,他默认是60,可以在zoo.cfg中找到他改大些。

2

注:各机器的时间要对应,时间差太大会造成无法zk通信

3

注:kafka的一般问题,meta文件id生成不对报错,去/tmp/kafka-logs/ 修改成对应的。

推荐信息