myid文件缺失导致zk无法启动(myid file is missing)

myid文件缺失

现象:zookeeper无法启动;

异常:$dataDir/myid file is missing;

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

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

 

 

#示例节点 dataDir=/home/crxj-coll/zookeeper-3.4.5/data
cd /home/crxj-coll/zookeeper-3.4.5/data
#这个节点准备命名为 第8号节点,新建文件myid并写入数字8
echo '8' > /var/tmp/zookeeper/myid

 

 

发现

PO主今天重启了下服务器,突然发现集群都无法工作了。查看zookeeper.out里面的日志输出,发现myid文件没有了。
myid文件用来在zk集群中标识本节点的编号,缺失后将无法启动。
于是着手重建myid文件。先在zoo.cfg中找到dataDir属性,发现数据文件存放与/var/tmp目录下,是的你没有看错,确实将数据文件存放在了/var/tmp目录下。PO主在重启机器之后该临时目录就被自动清除了Orz.
怎么就脑洞大开放到临时目录下,PO主到现在仍百思不得其解。
后面将dataDir转移到zk根目录就略过不表了。

 

详细异常贴下:

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

 

转载请标明作者和原文链接

ifuteng#gmail.com 2014/8/26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值