由于磁盘空间满了以后,导致zookeeper异常退出,清理磁盘空间后,zk启动报错,信息如下:
2018-06-25 17:18:46,904 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading configuration from: /run/cloudera-scm-agent/process/447-zookeeper-server/zoo.cfg2018-06-25 17:18:46,934 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Defaulting to majority quorums2018-06-25 17:18:46,939 INFO org.apache.zookeeper.server.DatadirCleanupManager: autopurge.snapRetainCount set to 52018-06-25 17:18:46,939 INFO org.apache.zookeeper.server.DatadirCleanupManager: autopurge.purgeInterval set to 242018-06-25 17:18:46,962 INFO org.apache.zookeeper.server.quorum.QuorumPeerMain: Starting quorum peer2018-06-25 17:18:46,971 INFO org.apache.zookeeper.server.DatadirCleanupManager: Purge task started.2018-06-25 17:18:46,998 INFO org.apache.zookeeper.server.DatadirCleanupManager: Purge task completed.2018-06-25 17:18:47,001 INFO org.apache.zookeeper.server.NIOServerCnxnFactory: binding to port 0.0.0.0/0.0.0.0:21812018-06-25 17:18:47,035 INFO org.apache.zookeeper.server.quorum.QuorumPeer: minSessionTimeout set to 40002018-06-25 17:18:47,035 INFO org.apache.zookeeper.server.quorum.QuorumPeer: maxSessionTimeout set to 600002018-06-25 17:18:47,036 INFO org.apache.zookeeper.server.quorum.QuorumPeer: QuorumPeer communication is not secured!2018-06-25 17:18:47,038 INFO org.apache.zookeeper.server.quorum.QuorumPeer: quorum.cnxn.threads.size set to 202018-06-25 17:18:47,040 INFO org.apache.zookeeper.server.persistence.FileSnap: Reading snapshot /var/lib/zookeeper/version-2/snapshot.e000000002018-06-25 17:18:47,195 ERROR org.apache.zookeeper.server.quorum.QuorumPeer: Unable to load database on diskjava.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:392) at org.apache.jute.BinaryInputArchive.readInt(BinaryInputArchive.java:63) at org.apache.zookeeper.server.persistence.FileHeader.deserialize(FileHeader.java:64) at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.inStreamCreated(FileTxnLog.java:594) at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.createInputArchive(FileTxnLog.java:613) at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.goToNextLog(FileTxnLog.java:579) at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(FileTxnLog.java:661) at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:204) at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:223) at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:530) at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:520) at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:167) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:116) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:79)2018-06-25 17:18:47,212 ERROR org.apache.zookeeper.server.quorum.QuorumPeerMain: Unexpected exception, exiting abnormallyjava.lang.RuntimeException: Unable to run quorum server at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:578) at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:520) at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:167) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:116) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:79)Caused by: java.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:392) at org.apache.jute.BinaryInputArchive.readInt(BinaryInputArchive.java:63) at org.apache.zookeeper.server.persistence.FileHeader.deserialize(FileHeader.java:64) at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.inStreamCreated(FileTxnLog.java:594) at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.createInputArchive(FileTxnLog.java:613) at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.goToNextLog(FileTxnLog.java:579) at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(FileTxnLog.java:661) at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:204) at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:223) at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:530) ... 4 more
解决办法:
# 清空datadir下的version-2$ cat /etc/zookeeper/conf.dist/zoo.cfg | grep datadirdatadir=/var/lib/zookeeper $ cd /var/lib/zookeeper $ ls myid version-2$ cp -r version-2 version-2_bak$ rm -rf version-2/*# 重启$ zkServer.sh start