myid文件缺失导致zk无法启动(myid file is missing)_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > myid文件缺失导致zk无法启动(myid file is missing)

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

 2014/9/24 18:53:34  futeng  程序员俱乐部  我要评论(0)
  • 摘要:myid文件缺失现象:zookeeper无法启动;异常:$dataDir/myidfileismissing;原因:zk集群中的节点需要获取myid文件内容来标识该节点,缺失则无法启动;解决:在zk数据文件存放目录下(见$ZK/conf/zoo.cfg,dataDir属性),创建myid文件并写入一个数字用来标识本节点(类似这个节点的身份证)。#示例节点dataDir=/home/crxj-coll/zookeeper-3.4.5/datacd/home/crxj-coll/zookeeper
  • 标签:file missing 文件 启动

myid文件缺失

现象:zookeeper无法启动;

异常:$dataDir/myid file is missing

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

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

?

?

class="java">#示例节点 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
上一篇: dom4j解析XML成对象 下一篇: java中String类
发表评论
用户名: 匿名