Zookeeper集群循环重启

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper集群循环重启相关的知识,希望对你有一定的参考价值。

参考技术A 发现ZooKeeper重启,并且在选主,主成功选出来之后,集群显示正常,但数秒之后,又开始重启,进入上述现象的循环。

查看ZK日志后,发现选举出的leader节点,loadsnapshot的时候,报Java堆内存不足的错误: java.lang.OutOfMemory: Java heap space

与此同时,follower节点报错: Unexpected exception causing shutdown while sock ...Follower is ahead of the leader

查看ZK data目录/var/lib/zookeeper/version-2,发现snapshot文件超过3G

ZK的java堆内存设置的是4G,load 3G的snapshot,在内存展开之后,超出内存上限。导致出错。

1 增大ZK堆内存大小

2 将所有ZK节点上的version-2目录重命名后,创建一个空的version-2目录,重新启动并初始化

需分析snapshot为何突然增大,ZK空间,大部分被Hive任务创建的节点占用。需要找到存在问题的Hive SQL,并禁止业务提交不合理的SQL(如导致笛卡尔积的SQL)。

以上是关于Zookeeper集群循环重启的主要内容,如果未能解决你的问题,请参考以下文章

zookeeper集群中增加机器需要重启吗

【zookeeper】服务器重启后zookeeper集群个别节点启动失败的处理办法

spark基于Zookeeper的HA集群重启

zookeeper集群崩溃处理

搭建Zookeeper集群服务启动失败

zooKeeper集群搭建