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
    ZooKeeper报错:Unable to access datadir, exiting abnormally_第1张图片

你可能感兴趣的:(CDH)