zookeeper:Unexpected exception, exiting abnormally ::java.io.EOFException

转载请注明出处:

  服务器中断,重启服务器在重启kafka服务时,遇到如下报错:

复制代码
2024-06-05 13:52:56,251 [myid:] - ERROR [main:ZooKeeperServerMain@64] - Unexpected exception, exiting abnormally
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:585)
   at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.createInputArchive(FileTxnLog.java:604)
   at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.goToNextLog(FileTxnLog.java:570)
   at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(FileTxnLog.java:652)
   at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:158)
   at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:223)
   at org.apache.zookeeper.server.ZooKeeperServer.loadData(ZooKeeperServer.java:283)
   at org.apache.zookeeper.server.ZooKeeperServer.startdata(ZooKeeperServer.java:410)
   at org.apache.zookeeper.server.NIOServerCnxnFactory.startup(NIOServerCnxnFactory.java:118)
   at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:119)
   at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:87)
   at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:53)
   at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:116)
   at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
ZooKeeper JMX enabled by default

解决方案

  1. 从备份恢复:如果您有最近的ZooKeeper数据目录的备份,从这个备份恢复将是解决问题最快的方式。确保备份是在ZooKeeper服务器正常运行时的状态。
  2. 手动恢复日志:
    • 如果ZooKeeper服务器仍在运行,请先停止它。
    • 定位包含datadatalog目录的ZooKeeper数据目录。
    • 导航到datalog目录并识别出问题的日志文件(例如,log.0snap.0000000000)。
    • 您可能需要手动编辑或删除这些文件以清除损坏。请谨慎操作,并在进行之前确保您有备份。
  • 清除损坏文件后,重新启动ZooKeeper服务器。
  1. 检查磁盘空间:确保磁盘有足够的空间,不是满的或几乎满的。磁盘空间不足有时可以表现为文件操作期间出现EOFException。
  2. 检查ZooKeeper版本兼容性:如果您最近升级了ZooKeeper,请确保集群中的所有节点都运行的是兼容版本。版本不匹配可能导致序列化/反序列化问题。
  3. 启用调试日志:为了获得更多关于问题的洞察,考虑为ZooKeeper启用调试日志。这可以提供更详细的故障机制信息。在ZooKeeper配置文件(zoo.cfg)中设置日志级别为DEBUG,并查看日志以获取更多线索。

解决方式:

将zookeeper 存放 data和datalog的目录进行重命名之后,再重启kafka,服务得以正常启动。

相关推荐
shushangyun_42 分钟前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
她说..1 小时前
Java 默认值设置方式
java·开发语言·后端·springboot
学渣超1 小时前
记一次分布式事务数据不一致的排查之旅:从超时到索引,层层剥茧
java·后端·架构
掉鱼的猫1 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·llm·aigc
带刺的坐椅2 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·ai·llm·agent·solon-ai
c238562 小时前
互斥锁高频面试题全解:从基础概念到底层实现,一文通关
java·c++·面试·职场和发展
error:(2 小时前
【系统与实战双精通】VS Code 调试 ROS2 Python 节点与 Launch 系统指南
android·java·python
Tian_Hang3 小时前
Eclipse Ditto 的权限策略
java·服务器·前端·网络·ide·ubuntu·eclipse
小蓝波3 小时前
docker 的命令
java·docker·容器
AI人工智能+电脑小能手3 小时前
【大白话说Java面试题 第155题】【06_Spring篇】第15题:Spring 如何解决循环依赖问题?
java·spring·循环依赖·三级缓存·aop代理