之前一篇博文简单讲述了zookeeper和kafka的单机配置,详细可以参考《Linux(CentOS)中常用软件安装,使用及异常——Zookeeper, Kafka》。
本文只要讲述Kafka集群的配置事项,包括zookeeper集群的配置。本文讲述的前提是kafka和zookeeper在单机情况下已正确安装和配置。如有疑问,可以参考《Linux(CentOS)中常用软件安装,使用及异常——Zookeeper, Kafka》。
假设集群中有三台机器, ip地址分别为: 10.101.139.1, 10.101.139.2, 10.101.139.3.
zookeeper集群: 10.101.139.1:2181, 10.101.139.2:2181, 10.101.139.3:2181.
kafka broker集群: 10.101.139.1:9092, 10.101.139.2:9092, 10.101.139.3:9092.
配置zookeeper集群
1 修改zookeeper的配置文件,在$ZOOKEEPER_HOME/conf/下的zoo.cfg.(每台机器都需要添加)
在文件末尾添加:
server.0=10.101.139.1:2888:3888
server.1=10.101.139.2:2888:3888
server.2=10.101.139.3:2888:3888
这里简单说明一下:server.A=B:C:D
A是一个数字,表示这个是第几号服务器,B是这个服务器的ip地址
C第一个端口用来集群成员的信息交换,表示的是这个服务器与集群中的Leader服务器交换信息的端口
D是在leader挂掉时专门用来进行选举leader所用
2 创建server id标识
在zoo.cfg下同时还需要配置(单机版时就已经设定,在配置集群时就可不必在设置)
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper/data
dataLogDir/tmp/zookeeper/log
clientPort=2181
在上面可以看到有个dataDir的配置,在配置集群时需要在dataDir配置的/tmp/zookeeper/data下创建一个名称为”myid”的文件,文件里填上serverid号。
vim /tmp/zookeeper/data/myid
之后在其中输入0 (根据上一步的配置,10.101.139.1配置为0,10.101.139.2配置为1,依次类推对应起来)
输入:wq保存退出
3 启动各个节点的zookeeper: bin/zkServer.sh start
4 通过bin/zkServer.sh status查看各个节点的状态。
JMX enabled by default
Using config: /root/util/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower (或Leader)
配置kafka集群
1 需要修改$KAFKA_HOME/config下的server.properties文件
修改broker.id的值,比如10.101.139.1设置为0,10.101.139.2设置为1,依次类推。(每台kafka broker server必须唯一)
最好将host.name设置为本机的ip地址而不是默认的localhost.
修改zookeeper.connect为zookeeper集群的ip,本例中可以这样设置:
zookeeper.connect=10.101.139.1:2181,10.101.139.2:2181,10.101.139.3:2181
2 在每台机器上启动kafka
bin/kafka-server-start.sh config/server.properties