最近在配置zookeeper集群中,三台zookkeeper机器配置完毕,zookeeper集群部分配置如下:
server.1=192.168.0.104:2888:3888
server.2=192.168.0.105:2888:3888
server.3=192.168.0.111:2888:3888
进入到zookeeper的bin目录下,通过./zkServer.sh restart进行重启,再通过./zkServer.sh status查看三台zookeeper的运行状况,发现始终报Error contacting service. It is probably not running,于是网上查了一下,说是要看看具体的zookeeper.out,于是打开zookeeper.out发现有很多如下内容:
Caused by: java.lang.IllegalArgumentException: ./usr/local/zookeeper-3.4.8/data/myid file is missing
看到我的conf/zoo.cfg下有这个配置项dataDir=/usr/local/zookeeper-3.4.8/data,与是在这个目录下添加文件myid,三台里面的内容依次写入1,2,3,再重启并查看状态,发现第一台始终不能启动,开始以为是server.1上有其它配置影响,于是乎我1,3号机配置调换,三台zoo.cfg中集群调整为如下:
server.3=192.168.0.104:2888:3888
server.2=192.168.0.105:2888:3888
server.1=192.168.0.111:2888:3888
再更换了各自的myid以后,重启,问题依旧,只不过是111的机器出了之前104的问题,于是想是不是1的机器编号不能用啊,于是再改:
server.3=192.168.0.104:2888:3888
server.2=192.168.0.105:2888:3888
server.4=192.168.0.111:2888:3888
将4的myid改为4以后重启,结果三台都不能正常启动了,估计是zookeeper是规定只能从1开始么???
做到这里我也开始有点迷糊了,机器配置不应该有问题,那是哪里出问题了呢!于是回到起点配置:
server.1=192.168.0.104:2888:3888
server.2=192.168.0.105:2888:3888
server.3=192.168.0.111:2888:3888
将各自myid重新置为1,2,3以后,再重启查看状态,居然正常了,都启动了,居然正常了?!?!?!
莫非就是要多重启几次?后来思考了一下,估计是我第一次启动的时候是从3号机开始启动的,这次是从1,2,3这个顺序启动的,应该是这个原因吧!