今天搭建kafka集群又重新搭建了一遍zookeeper,现在把过程记录下来。
一. 部署前的准备工作
保证各个主机之间能够正常通信,最好是在同一网段。
修改host文件,加入IP和主机名的映射。方法为修改/etc/hosts和etc/hostname文件,不同的Linux发行版方法不一定一样。
开放要使用的端口或者关闭防火墙
二. 部署Zookeeper集群
访问官网下载Zookeeper安装包,并解压。
tar -xvzf zookeeper-3.4.6.tar.gz
创建数据目录
执行以下命令创建数据目录:
mkdir /usr/zookeeper/data
执行以下命令创建日志目录:
mkdir /usr/zookeeper/data/log
执行以下命令创建myid文件,并写入ID:
echo 1 > /usr/zookeeper/data/myid
修改配置
执行以下命令编辑zoo.cfg文件:
cd zookeeper-3.4.6/conf/ && mv zoo_sample.cfg zoo.cfg && vi zoo.cfg
修改配置如下:
dataDir=/usr/zookeeper/data
dataLogDir=/usr/zookeeper/data/log
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
在最后添加Zookeeper集群各节点地址:
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
拷贝配置文件到其他节点
scp -r zookeeper-3.4.6/ node2:/usr/
这里需要注意的是,每个节点中的myid是不能相同的。
还需要在前面配置过的dataDir路径下新增myid文件
[root@localhost conf]# cd /tmp/zookeeper/data
[root@localhost data]# touch myid
[root@localhost data]# vim myid
在data目录下创建文件,文件名为“myid”, 编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。
如在192.168.180.132上,“myid”文件内容就是1。在192.168.180.133上,内容就是2。
三. 启动Zookeeper集群
在Zookeeper集群中各节点执行以下命令启动Zookeeper服务:
zookeeper-3.4.6/bin/zkServer.sh start
执行以下命令查看Zookeeper集群中各节点的状态:
zookeeper-3.4.6/bin/zkServer.sh status
可以看到node1节点为follewer节点
四. 验证 HA的故障自动转移是否好用
使用jps命令查看Zookeeper进程
使用kill -9 2432命令杀死leader进程,然后再查看每个节点的Zookeeper状态,如果有一个为leader则验证为好用
遇到问题怎么解决?
zookeeper的出错日志会记录在 zookeeper.out。
当前处于哪个目录,执行完zkServer.sh start命令, zookeeper.out就会写在哪个目录。
vim zookeeper.out 可以查看报错信息。然后再搜索解决。