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

zookeeper,unexpected,exception,exiting,abnormally,java,io,eofexception · 浏览次数 : 0

小编点评

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

正文

转载请注明出处:

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

解决方式:

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

 

与zookeeper:Unexpected exception, exiting abnormally ::java.io.EOFException相似的内容:

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

转载请注明出处: 服务器中断,重启服务器在重启kafka服务时,遇到如下报错: 2024-06-05 13:52:56,251 [myid:] - ERROR [main:ZooKeeperServerMain@64] - Unexpected exception, exiting abnormal

Zookeeper安装部署

ZooKeeper 简介 ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。 ZooKeeper 设计目的 最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最

得物 ZooKeeper SLA 也可以 99.99%

在本文中,作者探讨了ZooKeeper(ZK)的一个内存占用问题,特别是当有大量的Watcher和ZNode时,导致的内存消耗。

[转帖]zookeeper结构

目录 命名空间 作者:@dwtfukgv本文为作者原创,转载请注明出处:https://www.cnblogs.com/dwtfukgv/p/14644592.html 命名空间 zookeeper的命名空间和文件系统比较类似,它的每个节点被称作znode,每个znode可以存储1MB的数据,如下图

[转帖]Zookeeper集群搭建(3个节点为例)

Zookeeper集群搭建 1.说明 本文用的linux版本:centos6,准备3台centos6虚拟机,给他们安装zookeeper,每一台的安装过程相同,你也可以安装一台,然后克隆出另外两台。主机名分别为node1,node2,node3。 2.准备工作 安装java,wget yum -y

[转帖]zookeeper三节点集群搭建

https://www.jianshu.com/p/1dcfbf45383b 下载zookeeper Apache源 http://archive.apache.org/dist/zookeeper/zookeeper-3.4.7/ wget http://archive.apache.org/di

zookeeper的Leader选举源码解析

zookeeper是一个分布式服务框架,主要解决分布式应用中常见的多种数据问题,例如集群管理,状态同步等。为解决这些问题zookeeper需要Leader选举进行保障数据的强一致性机制和稳定性。本文通过集群的配置,对leader选举源进行解析,让读者们了解如何利用BIO通信机制,多线程多层队列实现高性能架构。

[zookeeper] 集群搭建及启动后查询服务器状态异常解决

一、集群搭建 1、每台服务器上部署zookeeper 1、将zookeeper压缩包解压到指定位置,在zookeeper解压后目录下创建数据目录zkData 2、在zkData下创建myid文件,内容写上数字,代表该zookeeper的唯一id 3、修改conf目录下的zoo_sample.cfg为

聊聊Zookeeper的Session会话超时重连

### 概述 简单地说,ZooKeeper的连接与会话就是客户端通过实例化ZooKeeper对象来实现客户端与服务器创建并保持TCP连接的过程。本质上,Session就是一个TCP 长连接。 ### 会话 Session会话的作用: 1. ZK Server 执行任何请求之前,都需要 Client

聊聊Zookeeper技术内幕之客户端与SetData请求处理

从客户端会话创建到网络连接、请求处理,简单的叙述下流程与逻辑 ### 客户端 客户端是开发人员使用ZooKeeper最主要的途径,ZooKeeper的客户端主要由以下几个核心组件组成。 - ZooKeeper实例:客户端的入口。 - ClientWatchManager:客户端Watcher管理器。