在搭建zk集群时,总会出现zk集群无法启动的问题,今天在这里总结一下
几个重要的配置信息
zoo.cfg配置文件
server.1=pinyougou01:2888:3888
server.2=pinyougou02:2888:3888
server.3=pinyougou03:2888:3888
配置主机名和ip的映射,修改etc目录下的hosts文件和hostname文件
vi /etc/hosts
127.0.0.1 localhost
192.168.92.129 pinyougou01
192.168.92.130 pinyougou02
192.168.92.131 pinyougou03
vi /etc/hostname
pinyougou01
错误信息:
Starting zookeeper ... STARTED
[root@pinyougou01 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /itcast/zookeeper-3.4.14/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
原因有以下几种:
1.data目录下myid文件没有进行修改
解决办法:切换到zk的date目录下,使用cat命令查看myid中的信息,将server01中的zk目录date文件夹中的myid文件改为1,以此类推,server02机器上的myid内容为2,server03机器上的myid为3.
[root@pinyougou01 ~]# cd /itcast/zookeeper-3.4.14/data/
[root@pinyougou01 data]# cat myid
1
[root@pinyougou01 data]#
2.在zoo.cfg文件中配置其他主机时,ip地址没有修改
写成主机名要修改etc目录下的hostname和hosts文件,配置主机名映射
3.防火墙没有关闭,zk无法建立选举机制,因此启动失败
使用的虚拟机镜像为centos7,则查看、禁用、关闭防火墙的命令为
Systemctl status firewalld --查看防火墙状态
Systemctl disable firewalld --禁用防火墙
Systemctl stop firewalld ----关闭防火墙
注:将防火墙关闭后,分别启动zk,当zk的节点没有启动到总数的半数以上时,查看zk的启动状态时显示的没有启动
当zk启动到半数以上时,会选举出leader,通过jps可以查看zk进程是否启动,通过zkserver.sh命令查看zk节点的状态
./zkserver.sh status