ZooKeeper报错:Unable to access datadir, exiting abnormally

概述


解决Zookeeper报错

问题描述


2019-12-09 23:18:41,425 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading configuration from: /var/run/cloudera-scm-agent/process/604-zookeeper-server/zoo.cfg
2019-12-09 23:18:41,446 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Defaulting to majority quorums
2019-12-09 23:18:41,453 INFO org.apache.zookeeper.server.DatadirCleanupManager: autopurge.snapRetainCount set to 5
2019-12-09 23:18:41,453 INFO org.apache.zookeeper.server.DatadirCleanupManager: autopurge.purgeInterval set to 24
2019-12-09 23:18:41,454 INFO org.apache.zookeeper.server.DatadirCleanupManager: Purge task started.
2019-12-09 23:18:41,460 ERROR org.apache.zookeeper.server.DatadirCleanupManager: Error occured while purging.
org.apache.zookeeper.server.persistence.FileTxnSnapLog$DatadirException: Missing snap directory /data/zookeeper/data/version-2, automatic data directory creation is disabled (zookeeper.datadir.autocreate is false). Please create this directory manually.
	at org.apache.zookeeper.server.persistence.FileTxnSnapLog.<init>(FileTxnSnapLog.java:122)
	at org.apache.zookeeper.server.PurgeTxnLog.purge(PurgeTxnLog.java:68)
	at org.apache.zookeeper.server.DatadirCleanupManager$PurgeTask.run(DatadirCleanupManager.java:140)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)
2019-12-09 23:18:41,474 INFO org.apache.zookeeper.server.DatadirCleanupManager: Purge task completed.
2019-12-09 23:18:41,483 INFO org.apache.zookeeper.server.quorum.QuorumPeerMain: Starting quorum peer
2019-12-09 23:18:41,497 INFO org.apache.zookeeper.server.NIOServerCnxnFactory: binding to port 0.0.0.0/0.0.0.0:2181
2019-12-09 23:18:41,512 ERROR org.apache.zookeeper.server.quorum.QuorumPeerMain: Unable to access datadir, exiting abnormally
org.apache.zookeeper.server.persistence.FileTxnSnapLog$DatadirException: Missing snap directory /data/zookeeper/data/version-2, automatic data directory creation is disabled (zookeeper.datadir.autocreate is false). Please create this directory manually.
	at org.apache.zookeeper.server.persistence.FileTxnSnapLog.<init>(FileTxnSnapLog.java:122)
	at org.apache.zookeeper.server.quorum.QuorumPeer.<init>(QuorumPeer.java:490)
	at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:138)
	at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:116)
	at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:79)



如日志所说,在执行清除文件的时候,Zookeeper发现当前节点上缺少snap directory(临时目录),即缺少/data/zookeeper/data/version-2,并且在Zookeeper尝试自动创建此目录时也失败了 ( zookeeper.datadir.autocreate 是flase) ,最终导致了exiting abnormally(异常退出)

Zookeeper需要你手动创建此文件夹


问题解决


上面的日志,换句话说就是,既没有version-2目录,又被设置为不能自动创建。那么,我们便可以有以下两种方法:

  1. 方法一:以Zookeeper的角色,手动创建目录version-2,再重启此节点上的Zookeeper,配置不变。如下:

       yeluo@slave2:~$ sudo -u zoopeeper mkdir /data/zookeeper/data/version-2
    在这里插入图片描述
    这里以123.*为例说明下,之所以使用sudo -u zoopeeper,是要让文件夹的归属者和创建者均是zookeeper
      (如果你不是使用sudo -u zoopeeper切换到zookeeper去创建,那么文件夹的归属是root,后面写数据可能出现权限问题。如果觉得麻烦,那么可以直接采用方法二)

  2. 方法二:设置自动创建目录version-2,然后重启此结点的Zookeeper Server即可如下:

      勾选Enable auto-creation of data directories
    在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值