HiveServer2 ZooKeeper 连接泄漏

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:

昨天线上ETLJob突然挂起,查看Hive Log异常:

[ERROR]:Utils - FAILED: Error in acquiring locks: Locks on the underlying objectscannot be acquired. retry after some time

WARNunexpected error, closing socket connection and attempting reconnectjava.io.IOException: Connection reset by peer

一看是获取锁失败,关于Hive获取锁的流程简析:

http://boylook.blog.51cto.com/7934327/1308139

在看ZK发现从这台AgentZK的连接已经超过maxClientCnxns了,立刻先把ZK增加问题得到缓解,然后开始找RC

出现问题的前一天修改了hive.lock.sleep.between.retries5s,是不是和这个有关系呢?每次ZKLockManagerretry前会执行prepareretry,主要是检查前一个zk连接是否超时,如果没有继续用这个连接否则new一个zk连接,因此问题不应该是这里.

再看出问题的Client上主要跑了ETL agenthiveserver2,发现连接都是从hiveserver2上来的,怀疑是不是因为默认的maxWorkerThreads略大了,不过workerzk的连接无关,只是决定了ThreadPoolExecutor的线程数,看hiveserver部分代码最终与ZK交互的执行层面是OperationHandle,进而就是大家都熟悉的Driver run方法了,到这里基本上才开始进行SQL的解析运行,包括锁的处理.

210246344.png

而我们使用的是CDH4.2.0,这里有一个OperationHandle 资源泄露进而导致到ZK连接泄漏的一个Bug

https://issues.cloudera.org/browse/DISTRO-512?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel#issue-tabs–> HIVE-4398,在Hive0.11已经修复


本文转自MIKE老毕 51CTO博客,原文链接:http://blog.51cto.com/boylook/1315751,如需转载请自行联系原作者


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
Zookeeper系列 (三) [单机版连接客户端]
进入zookeeper的 bin目录 运行脚本: ./zkCli.sh
78 0
Zookeeper系列 (三) [单机版连接客户端]
|
缓存 网络协议 Java
在项目中使用Curator的Java 客户端搭建后进行长TCP连接和TCP权限配置【Zookeeper】
在项目中使用Curator的Java 客户端搭建后进行长TCP连接和TCP权限配置【Zookeeper】
257 0
在项目中使用Curator的Java 客户端搭建后进行长TCP连接和TCP权限配置【Zookeeper】
|
负载均衡 Java Linux
Java--安装和用原生API连接Zookeeper
Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
152 0
Java--安装和用原生API连接Zookeeper
|
负载均衡 Java Shell
安装和用原生API连接Zookeeper
Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
91 0
安装和用原生API连接Zookeeper
|
Java Linux
Java连接Zookeeper
Java操作Zookeeper很简单,但是前提要把包导对。 关于Zookeeper的Linux环境搭建可以参考我的这篇博客:Linux环境下Zookeeper安装 下面进入正题: 一、导入依赖 4.
2775 0
|
网络协议 Java 应用服务中间件
zookeeper 大量连接断开重连原因排查
问题现象 最后发现线上的zookeeper的日志zookeeper.out 文件居然有6G,后来设置下日志为滚动输出,参考: http://blog.csdn.net/hengyunabc/article/details/19006911 但是改了之后,发现一天的日志量就是100多M,滚动日志一天就被冲掉了,这个不科学。
3323 0
|
7天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
28 2