myid文件缺失

现象 :zookeeper无法启动;

异常 :$dataDir/myid file is missing;

原因 :zk集群中的节点需要获取myid文件内容来标识该节点,缺失则无法启动;

解决 :在zk数据文件存放目录下(见 $ZK/conf/zoo.cfg,dataDir属性),创建myid文件并写入一个数字用来标识本节点(类似这个节点的身份证)。

详细异常如下:

[java]  view plain  copy
  1. org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /home/crxj-coll/zookeeper-3.4.5/bin/../conf/zoo.cfg  
  2.   at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:121)  
  3.   at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)  
  4.   at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)  
  5. Caused by: java.lang.IllegalArgumentException: /var/tmp/zookeeper/myid file is missing  
  6.   at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:344)  
  7.   at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:117)  
  8.   ... 2 more  
  9. Invalid config, exiting abnormally  


处理过程:

更改zookeeper/conf/zoo.cfg,找到dataDIr,修改如下:(在你的zookeeper目录下创建data文件夹)

[java]  view plain  copy
  1. dataDir=$ZK_HOME/data      

在data文件夹中

创建myid文件,在里面设置一个数字(每个节点的这个数字不能一样)


之后zookeeper就可以正常启动了!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐