我一直在使用Kafka 2.4.0(2.11),昨天由于未知的原因,我不得不强制终止该进程。从那以后,我再也没有因为以下错误而无法启动ZooKeeper:
[2020-01-11 11:12:43,783] ERROR Unexpected exception, exiting abnormally (org.apache.zookeeper.server.ZooKeeperServerMain)
java.io.IOException: No snapshot found, but there are log entries. Something is broken!
at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:222)
at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:240)
at org.apache.zookeeper.server.ZooKeeperServer.loadData(ZooKeeperServer.java:290)
at org.apache.zookeeper.server.ZooKeeperServer.startdata(ZooKeeperServer.java:450)
at org.apache.zookeeper.server.NIOServerCnxnFactory.startup(NIOServerCnxnFactory.java:764)
at org.apache.zookeeper.server.ServerCnxnFactory.startup(ServerCnxnFactory.java:98)
at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:144)
at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:106)
at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:64)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:128)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:82)
当我搜索此问题时,我发现报告了问题ZOOKEEPER-3513,这可能解释了问题,也可能解释不了问题。然而,我发现奇怪的是,如果我删除Kafka/ZooKeeper目录并从头重新下载它,问题仍然存在。有人知道我怎么才能解决这个问题吗?
谢谢你的帮助
9条答案
按热度按时间xdnvmnnf1#
检查您有Kafka文件夹的驱动器上的tMP/zooKeeper文件夹(假设为D:/),并删除文件夹tMP,一旦再次运行ZooKeeper,它将自动为您创建。
zrfyljdw2#
尝试更改您的ZooKeeper数据目录。您的ZooKeeper.properties中定义了ZooKeeper数据目录(我认为缺省值是/tMP/zooKeeper)。
也许您没有删除正确的ZooKeeper目录?
我也遇到了同样的问题,这个解决方案奏效了。
注:我正在试验Kafka,而不是在生产中使用它。除了修复这个错误之外,我不知道上面还有什么功能……
i1icjdpr3#
在从3.4.x版升级到3.5.6版后,我在ZooKeeper上遇到了同样的问题。如here所述。我已经:
1.在数据目录中添加了空的Snaphot.0文件
1.在ZooKeeper配置文件(默认为zoo.cfg)中添加了属性‘zookeeper.Snaphot.trust.Empty=true’。
vxf3dgd44#
在Windows->
转到存储ZooKeeper详细信息的临时文件夹并删除现有日志文件
目录路径=d:\TMP\zooKeeper\Version-2
在Linux上->
路径=/tmp/zooKeeper/版本2
并使用rm-r log.1删除所有现有日志文件
日志文件将再次自动创建,并将解决该问题。
68de4m5k5#
如果你是在Windows上,确保你避开了ZooKeeper临时目录的位置。
DataDir=d:\TMP\ZooKeeper
eufgjt7s6#
为日志创建了一个新目录,并在zoo.cfg中配置了相同的路径。它奏效了:)
kkih6yb87#
我使用MacOS,我的解决方案是删除
dataDir
中的所有内容,缺省值应该是/usr/local/var/lib/zookeeper
。rjzwgtxy8#
对于那些正在使用docker的人,我将分享我的经验:
我一直在运行ZooKeeper confluentinc/cp-zooKeeper:5.2.1,如下所示:
不出所料,我可以看到一些文件放置在主机上的
/tmp/zookeeper-txn-logs
和/tmp/zookeeper-data
中。在清理*/tMP/zooKeeper-data并再次运行后,我收到错误找不到快照,但有日志条目。*在我的例子中,我只需清除
/tmp/zookeeper-txn-logs
上的数据。对于开发/生产环境,我建议遵循文档https://access.redhat.com/documentation/en-us/red_hat_amq/6.3/html/fabric_guide/ensemble-purgetxnlogsnvhrwxg9#
在MacOS中遇到同样的问题。解决方案:在Kafka目录中,路径
cd /tmp/zookeeper/version-2
删除了log.1文件。这对我很管用