zookeeper集群崩溃处理

今天在私有化项目中遇到如下问题:

1.客户反馈用户登录返回303

2.登录服务器查看是大量的log将服务器磁盘空间占用殆尽,导致所有服务进程仍旧存在但是监听端口失败,服务不可用

3.清理日志文件

4.日志文件清理完成后,重启服务,重启zookeeper服务时出现以下报错

2017-07-12 10:52:39,171 [myid:] - INFO [main:[email protected]] - Reading configuration from: /data/apps/config/zookeeper/zoo.cfg
2017-07-12 10:52:39,176 [myid:] - INFO [main:[email protected]] - Defaulting to majority quorums
2017-07-12 10:52:39,180 [myid:2] - INFO [main:[email protected]] - autopurge.snapRetainCount set to 5
2017-07-12 10:52:39,180 [myid:2] - INFO [main:[email protected]] - autopurge.purgeInterval set to 24
2017-07-12 10:52:39,183 [myid:2] - INFO [PurgeTask:[email protected]] - Purge task started.
2017-07-12 10:52:39,194 [myid:2] - INFO [main:[email protected]] - Starting quorum peer
2017-07-12 10:52:39,196 [myid:2] - INFO [PurgeTask:[email protected]] - Purge task completed.
2017-07-12 10:52:39,206 [myid:2] - INFO [main:[email protected]] - binding to port 0.0.0.0/0.0.0.0:2181
2017-07-12 10:52:39,218 [myid:2] - INFO [main:[email protected]] - tickTime set to 2000
2017-07-12 10:52:39,218 [myid:2] - INFO [main:[email protected]] - minSessionTimeout set to -1
2017-07-12 10:52:39,218 [myid:2] - INFO [main:[email protected]] - maxSessionTimeout set to -1
2017-07-12 10:52:39,218 [myid:2] - INFO [main:[email protected]] - initLimit set to 10
2017-07-12 10:52:39,230 [myid:2] - INFO [main:[email protected]] - Reading snapshot /data/apps/data/zookeeper/version-2/snapshot.60000888d
2017-07-12 10:52:39,341 [myid:2] - ERROR [main:[email protected]] - Last transaction was partial.
2017-07-12 10:52:39,342 [myid:2] - ERROR [main:[email protected]] - Unable to load database on disk
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:576)
at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.createInputArchive(FileTxnLog.java:595)
at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.goToNextLog(FileTxnLog.java:561)
at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(FileTxnLog.java:643)
at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.init(FileTxnLog.java:547)
at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.<init>(FileTxnLog.java:522)
at org.apache.zookeeper.server.persistence.FileTxnLog.read(FileTxnLog.java:354)
at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:132)
at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:223)
at org.apache.zookeeper.server.quorum.QuorumPeer.loadDataBase(QuorumPeer.java:450)
at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:440)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:153)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
2017-07-12 10:52:39,345 [myid:2] - ERROR [main:[email protected]] - Unexpected exception, exiting abnormally
java.lang.RuntimeException: Unable to run quorum server

经查阅资料得知,造成zookeeper崩溃的原因是

zookeeper呈现给使用某些状态的所有客户端进程一致性的状态视图。当一个客户端从zookeeper获得响应时,客户端可以非常肯定这个响应信息与其他响应信息或其他客户端所接收的响应均保持一致。有时,zookeeper客户端库与zookeeper服务的连接会丢失,而且服务提供一致性保证信息,当客户端发现自己处于这种状态时就会返回这种状态。

解决方法:

1.查看zookeeper的配置文件,找到数据的存放目录

cat /etc/zookeeper/conf/zoo.cfg

2.删除或重命名数据配置文件

cd /var/lib/zookeeper

mv ./version-2 ./version-2.bak

3.重新启动zookeeper,查看进程以及端口号是否被监听。

时间: 2024-10-10 01:33:34

zookeeper集群崩溃处理的相关文章

zookeeper集群搭建及Leader选举算法源码解析

一.zookeeper概述 1.zookeeper 简介 zookeeper 是一个开源的分布式应用程序协调服务器,是 Hadoop 的重要组件. zooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务器,是 Google 的Chubby 一个开源的实现,是 Hadoop 和 Hbase 的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.集群管理等.ZooKeeper的目标就是封装复杂易出错的关键服务,将简单易用的接口和性能高效.

Zookeeper集群&quot;脑裂&quot;问题 - 运维总结

关于集群中的"脑裂"问题,之前已经在这里详细介绍过,下面重点说下Zookeeper脑裂问题的处理办法.ooKeeper是用来协调(同步)分布式进程的服务,提供了一个简单高性能的协调内核,用户可以在此之上构建更多复杂的分布式协调功能.脑裂通常会出现在集群环境中,比如ElasticSearch.Zookeeper集群,而这些集群环境有一个统一的特点,就是它们有一个大脑,比如ElasticSearch集群中有Master节点,Zookeeper集群中有Leader节点. 一. Zookeep

配置ZooKeeper集群11

配置ZooKeeper集群(Windows环境下) 1.解压三个zookeeper目录 D:\zookeeper\zookeeper-1 D:\zookeeper\zookeeper-2 D:\zookeeper\zookeeper-3 2.在这3个目录下面建立data和log目录,并在data目录下面新建myid文件 myid的文件内容分别为:1.2.3 3.在conf目录下面复制zoo_sample.cfg文件为zoo.cfg文件 4.修改zoo.cfg文件 # The number of

配置ZooKeeper集群

配置ZooKeeper集群(Windows环境下) 1.解压三个zookeeper目录 D:\zookeeper\zookeeper-1 D:\zookeeper\zookeeper-2 D:\zookeeper\zookeeper-3 2.在这3个目录下面建立data和log目录,并在data目录下面新建myid文件 myid的文件内容分别为:1.2.3 3.在conf目录下面复制zoo_sample.cfg文件为zoo.cfg文件 4.修改zoo.cfg文件 # The number of

dubbo学习之dubbo管理控制台装配及集成zookeeper集群部署(1)【转】

dubbo管理控制台开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能. 1.下载dubbo 地址:http://code.alibabatech.com/mvn/releases/com/alibaba/dubbo-admin/2.4.1/dubbo-admin-2.4.1.war 本人将tomcat安装在/opt/目录下,先删除tomcat/webapps下自带的ROOT文件夹,将下载的war包解压到webapps/ROOT,命令如下: [plain] 

kafka学习(二)-zookeeper集群搭建

zookeeper概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名 服务等.Zookeeper是hadoop的一个子项目,其发展历程无需赘述.在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制 不适合在某些应用中使用,因此需要有一种可靠的.可扩展的.分布式的.可配置的协调机制来统一系统的状态.Zookeeper的目的就在于此. 1.角色 Zookeeper中的角色主要有以下三

ZooKeeper集群的安装、配置、高可用测试

Dubbo注册中心集群Zookeeper-3.4.6 Dubbo建议使用Zookeeper作为服务的注册中心. Zookeeper集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的.正是基于这个特性,要将ZK集群的节点数量要为奇数(2n+1:如3.5.7个节点)较为合适. ZooKeeper与Dubbo服务集群架构图 服务器1:192.168.1.81  端口:2181.2881.3881 服务器2:192.168.1.82  端口:2182.2882.3882 服务器3:192.

Zookeeper集群shell操作

1.zookeeper Zookeeper可以用来保证数据在Zookeeper集群之间的数据事务一致性 2.启动集群与检查 分别在每台机器上启动 ./zkServer.sh start 检查状态 ./zkServer.sh status 3.客户端启动shell命令行 zkCli.sh 4.shell命令:输入help得到所有的命令列表 我的个人网站:http://www.caicongyang.com : 我的CSDN博客地址: http://blog.csdn.net/caicongyang

【Zookeeper】Zookeeper集群单节点提供服务

以下只在特殊情况下使用,不要用在生产环境. 一.问题背景 公司的产品使用Zookeeper做为集群支持,但是客户在验收的时候提出了一个很为难人的要求,那就是3台集群服务,停止2台以后,还要求我们的应用能提供服务,这就有点难为人了. 因为用过Zookeeper的人都知道,Zookeeper的leader的选举需要大多数同意,也就是说三台机器的Zookeeper集群那么选举leader就需要两台,如果只剩下一台Zookeeper那么是无法完成leader选举的,也就是说Zookeeper将不能对外提