ZK—zookeeper無法啟動,報“Unable to load database on dis”
阿新 • • 發佈:2018-05-07
zookeeper問題描述:
部署zookeeper的服務器磁盤滿了,引起服務異常,將zookeeper進程殺掉之後,重新啟動zookeeper啟動的時候顯示成功了:
部署zookeeper的服務器磁盤滿了,引起服務異常,將zookeeper進程殺掉之後,重新啟動zookeeper啟動的時候顯示成功了:
[root@slave-2 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
但是zookeeper的進程和端口都沒有起來。
查看zookeeper.out,發現有報錯信息如下:
2018-05-07 10:33:58,556 [myid:3] - INFO [main:FileSnap@83] - Reading snapshot /opt/data/zookeeper/version-2/snapshot.1900356f19 2018-05-07 10:33:58,966 [myid:3] - ERROR [main:Util@239] - Last transaction was partial. 2018-05-07 10:33:58,968 [myid:3] - ERROR [main:QuorumPeer@648] - Unable to load database on disk java.io.IOException: The accepted epoch, 19 is less than the current epoch, 3a at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:645) at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:591) at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:164) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78) 2018-05-07 10:33:58,970 [myid:3] - ERROR [main:QuorumPeerMain@89] - Unexpected exception, exiting abnormally java.lang.RuntimeException: Unable to run quorum server at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:649) at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:591) at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:164) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78) Caused by: java.io.IOException: The accepted epoch, 19 is less than the current epoch, 3a at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:645) ... 4 more [root@slave-2 bin]#
經過網上查詢,得到解決方法:
將zookeeper的version-2目錄備份一份,再重新創建一個新的version-2目錄,然後重新啟動zookeeper。
操作如下:
[root@slave-2 zookeeper]# ll total 28 -rw-r--r-- 1 root root 2 Aug 30 2017 myid drwxr-xr-x 2 root root 24576 May 7 10:36 version-2 -rw-r--r-- 1 root root 5 May 7 10:42 zookeeper_server.pid [root@slave-2 zookeeper]# mv version-2 version-2.bak [root@slave-2 zookeeper]# ll total 28 -rw-r--r-- 1 root root 2 Aug 30 2017 myid drwxr-xr-x 2 root root 24576 May 7 10:36 version-2.bak -rw-r--r-- 1 root root 5 May 7 10:42 zookeeper_server.pid [root@slave-2 zookeeper]# mkdir version-2 [root@slave-2 zookeeper]# ll total 28 -rw-r--r-- 1 root root 2 Aug 30 2017 myid drwxr-xr-x 2 root root 6 May 7 10:44 version-2 drwxr-xr-x 2 root root 24576 May 7 10:36 version-2.bak -rw-r--r-- 1 root root 5 May 7 10:42 zookeeper_server.pid
然後重新啟動zookeeper:
[root@slave-2 bin]# ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@slave-2 bin]# netstat -tlunp|grep 2181 tcp6 0 0 :::2181 :::* LISTEN 32695/java
ZK—zookeeper無法啟動,報“Unable to load database on dis”