ZooKeeper не запускается, потому что принято Epoch меньше текущего Epoch
У меня есть zookeeper.version=3.4.10, и я вижу:
https://issues.apache.org/jira/browse/ZOOKEEPER-2307
это однако в нерешенном статусе. Проблема появилась из-за заполнения дискового пространства. Теперь, когда я удалил несколько журналов и освободил место, я хотел бы запустить zookeeper, но он не запустится из-за этой ошибки:
[2019-01-22 09:07:32,646] ERROR Unable to load database on disk
(org.apache.zookeeper.server.quorum.QuorumPeer)
java.io.IOException: The accepted epoch, 13 is less than the current epoch,
14
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)
[2019-01-22 09:07:32,648] ERROR Unexpected exception, exiting abnormally
(org.apache.zookeeper.server.quorum.QuorumPeerMain)
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, 13 is less than the current epoch, 14
at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:645)
... 4 more
Нужно ли исправлять его (я не уверен, что патч готов), или я могу просто исправить данные zookeeper (например, сделать так, чтобы они принимали новую эпоху) и продолжить с той же версией?
3 ответа
Это сработало, я просто сделал:
cp currentEpoch acceptedEpoch
в каталоге данных zookeeper, и все началось без проблем.
Я заметил это http://zookeeper-user.578899.n2.nabble.com/acceptedEpoch-and-currentEpoch-values-not-matching-exception-message-td7581567.html, Отис Господнетик говорит, что я могу удалить оба файла (currentEpoch и Принимаю эпоху) и перезапускаю, и это может восстановить зоокейпер, но Флавио Жункейра говорит, что не должен. Думаю, я все равно попробую.
Это решило проблему,
cp ~/zookeeper/version-2/currentEpoch ~/zookeeper/version-2/acceptedEpoch
фактическая причина этой проблемы - синхронизация времени между узлами Zookeeper.