项目场景:
启动 ZooKeeper时,发现所有的节点都是leader
问题描述:
安装完ZooKeeper,启动ZooKeeper,所有节点都是Mode: leader
JMX enabled by default
Using config: /opt/cloudera/parcels/CDH-6.0.0/lib/zookeeper/bin/../conf/zoo.cfg
Mode: leader
原因分析:
组成ZooKeeper的成员服务器。server.x的x是服务器号,与对应服务器dataDir中myid文件内的号码一致。我这边的myid设定入下,但我却忘记设定server.x的x是服务器号,导致所有都是Mode: leader
在这里普及一下服务器状态:
LOOKING:寻找Leader状态。当服务器处于该状态时,它认为当前集群中没有Leader。
FOLLOWING:跟随者状态,表明当前服务器角色Follower。
LEADING:领导者状态,表明当前服务器角色是Leader。
OBSERVING:观察者状态,表明当前服务器是Observer。
解决方案:
在configuration 中搜索框输入zoo.cfg,分别将刚刚的myid号码一致,例如server.1 对应的是004。所以server.1=004:2888:3888,以此类推。这里指定两个端口号,前一个用于Follower连接Leader,后一个用于Leader选举。然后设定好重新启动ZooKeeper,就没问题哦!