kafka+zookeeper集群搭建
环境
centos: 7.3
kafka: 2.11-0.10.2.1
zookeeper: 3.4.9
java: 1.8.0_111
kafka安装包:
https://archive.apache.org/dist/kafka/0.10.2.1/kafka_2.11-0.10.2.1.tgz
zookeeper安装包:
http://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
1.解压下载好的zookeeper安装包及创建配置文件依赖的目录。
tar -zxvf zookeeper-3.4.9.tar.gz -C /data/
mv /data/zookeeper-3.4.9 /data/zookeeper
mkdir /data/zookeeper/zkdata{,log}
2.copy一份conf/zoo.cfg并修改(server的地址这里写的主机名,所以得把机器解析写到/etc/hosts)。
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/zkdata
dataLogDir=/data/zookeeper/zkdatalog
clientPort=2181
quorumListenOnAllIPs=true
maxClientCnxns=600
skipACL=yes
autopurge.snapRetainCount=50
autopurge.purgeInterval=6
server.1=myx-node01:2888:3888
server.2=myx-node02:2888:3888
server.3=myx-node03:2888:3888
3.修改conf/log4j.properties日志配置文件,将zookeeper.root.logger=INFO, CONSOLE 改为(标准输出到文件)
zookeeper.root.logger=INFO, ROLLINGFILE
4.修改bin/zkEnv.sh文件,将ZOO_LOG4J_PROP="INFO,CONSOLE"改为(标准输出到文件)
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
5.在节点配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机。zoo.cfg文件中配置的server.X,则myid文件中就输入这个数字X。这里是node01机器所以节点id为1。
echo "1" > /data/zookeeper-data/myid
4.启动zookeeper。
cd /data/kafka/zookeeper-3.4.9/ && bin/zkServer.sh start
PS: 另外2台重复以上步骤,zkServer.sh status看状态是Error contacting service. It is probably not running.看zookeeper.out发现 java.net.BindException: 无法指定被请求的地址 (Bind failed)无法绑定3888端口,解决方法是在每台zoo.cfg加一行配置,再重启就好了。具体原因:https://blog.csdn.net/xiyoulinux_kangyijie/article/details/76704639、https://blog.csdn.net/u014284000/article/details/74508963
quorumListenOnAllIPs=true