ZooKeeper не запускается, потому что acceptEpoch меньше, чем currentEpoch

У меня есть 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 (например, заставить его каким-то образом принять новую эпоху) и продолжить с той же версией?

1
задан 22 January 2019 в 12:12
3 ответа

Это сработало, я только что сделал:

cp currentEpoch acceptedEpoch

в каталоге данных zookeeper, и он запустился без каких-либо проблем.

2
ответ дан 3 December 2019 в 20:10

Я заметил это http://zookeeper-user.578899.n2.nabble.com/acceptedEpoch-and-currentEpoch-values-not-matching-exception-message-td7581567. html , Отис Господнетич говорит, что я могу удалить оба файла (currentEpoch и acceptEpoch) и перезапустить, и он может восстановить zookeeper, но Флавио Джанкейра говорит, что я не должен. Думаю, я все равно попробую.

0
ответ дан 3 December 2019 в 20:10

Это действительно решило проблему,

cp ~/zookeeper/version-2/currentEpoch ~/zookeeper/version-2/acceptedEpoch

фактическая причина этой проблемы заключается в синхронизации времени ч/б узлов зоопарка

0
ответ дан 6 May 2021 в 16:28