zookeeper非正常结束后启动失败问题排查

问题产生背景

    本地电脑中运行了三个zookeeper实例搭建的集群,在其正常运行的时候,电脑重启了,然后想要启动zookeeeper集群,但是提示:

ZooKeeper JMX enabled by default
Using config: apache-zookeeper-3.6.1/conf/zoo1.cfg
Starting zookeeper ... FAILED TO START

问题排查

    查看运行日志,默认日志目录在zookeeper根目录有个logs,发现其中有一个后缀为 .out 的文件,zookeeper-localhost-server-root.out,cat查看该文件内容,发现日志中记录了如下异常信息:

2020-05-24 15:31:09,954 [myid:] - ERROR [main:QuorumPeerMain@98] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing apache-zookeeper-3.6.1/conf/zoo1.cfg
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:197)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:124)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:90)
Caused by: java.lang.IllegalArgumentException: myid file is missing
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.checkValidity(QuorumPeerConfig.java:810)
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupQuorumPeerConfig(QuorumPeerConfig.java:681)
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:506)
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:193)
    ... 2 more
Invalid config, exiting abnormally
从异常信息来看是 myid 这个文件丢失了,然后查看对应的zookeeper的conf目录中对应配置文件中 dataDir配置的目录下果然没有myid这个文件了,搭建集群运行的时候是配置了的,既然没有,那就再在对应的dataDir目录中添加myid文件,我的目录是/tmp/zookeeper/zoo1,所以执行命令  echo 1 > /tmp/zookeeper/zoo1/myid 添加myid文件并且文件内容为1,这个id可以随意但是不能重复,因为zk集群中的节点需要获取myid文件内容来标识该节点.如果有多个cfg文件,那使用的目录也是要做同样操作的.

然后执行启动命令 bin/zkServer.sh start conf/zoo1.cfg,成功启动,日志如下:

ZooKeeper JMX enabled by default
Using config: conf/zoo1.cfg
Starting zookeeper ... STARTED

总结        

      现在看来文件丢失的原因就是因为我把这个目录建在了linux的/tmp 目录了,这个目录中的文件再系统关闭的时候会清除文件,因此,建议不要把zookeeper/conf目录中的配置文件中dataDir参数值(路径)设置到系统的/tmp 中.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值