博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive 使用陷阱(Lock table) 排查过程
阅读量:6329 次
发布时间:2019-06-22

本文共 2108 字,大约阅读时间需要 7 分钟。

  hot3.png

前言

业务部门使用python通过hive thrift api做数据统计,早段时间发现在频繁创建表的时候,接口会卡死。经过一番的排查,是因为hive的lock table manager特性对于hive server的接口服务不兼容,解决办法:1)取消lock table manager特性,实际在hive server上lock table也没有作用。 2)使用hive server 2,这个是cloudera公司开发的玩意,但是暂时hive server 2没有提供跨语言的thrift,所以以前的python代码无法使用了。 在我们的环境中还是需要使用python,所以就直接把lock table manager取消了。下面说说排查过程。

排查过程

1.查看业务python程序的日志,lock上了

HiveServerException: HiveServerException(errorCode=10, message='Query returned non-zero code: 10, cause: FAILED: Error in acquiring locks: Locks on the underlying objects cannot be acquired. retry after some time', SQLState='42000')

2.查看hive server的日志,和zookeeper服务建立不了连接了

2013-08-08 10:51:28,196 WARN  zookeeper.ClientCnxn (ClientCnxn.java:run(1089)) - Session 0x0 for server dn241.kis.hadoop.cn/172.28.29.241:2181, unexpected error, closing socket connection and attempting reconnect

3.查看一下zookeeper服务器日志,提示已经到达zookeeper允许的最大连接了

2013-08-08 12:25:16,647 [myid:2] - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@193] - Too many connections from /172.28.26.83 - max is 50

4.那回到hive server看是否都是它说创建的连接

#查看一下hive server的pid号,这里是2744ps axu |grep hive#查看一下hive server建立的连接数,果然与zookeeper都建立了50个连接lsof -p 2744 |grep -i tcp |grep dn240 |wc -l50lsof -p 2744 |grep -i tcp |grep dn241 |wc -l 50

5.那确定了问题,如何改善呢。增加zookeeper允许的单IP最大连接数

修改zookeeper配置文件(/etc/zookeeper/conf/zoo.cfg)

maxClientCnxns=200minSessionTimeout=1000maxSessionTimeout=60000

6.确实zookeeper的连接到达200了,但是问题是每次跑完hive查询,hive server与zookeeper的连接都不会释放,那连接数只会一直的累加,调大连接数不是解决根本的方法

7.查看相关文档,发现hive server 与 hive server 2的区别是,hive server 2是提供并发连接,而lock table manager也是为了处理并发的。那在我们的应用中每次查询都是创建一个实例去做,只有一个连接,那这个特性对于我们的应用来说是没有用的。那我把特性给取消了,注释了以下配置文件,并重启hive server

hive.support.concurrency
Enable Hive's Table Lock Manager Service
true
hive.zookeeper.quorum
Zookeeper quorum used by Hive's Table Lock Manager
dn240.kis.hadoop.cn,dn241.kis.hadoop.cn

8.取消后,业务正常运行,且hive server不再与zookeeper建立连接,问题解决。

转载于:https://my.oschina.net/lxcong/blog/151970

你可能感兴趣的文章
IBM推出基于Watson的认知营销服务
查看>>
为什么说Python是伟大的入门语言
查看>>
调查:中国CIO在亚太拥最大战略影响力
查看>>
"途牛+巨杉" 诠释在线旅游与大数据结合
查看>>
保护物联网的数据隐私和在线安全的7种方式
查看>>
混合云扛起云存储领军大旗
查看>>
5G空口存疑 革新还是4G演进?
查看>>
We wear culture:Google 艺术与文化项目带你探秘穿在身上的文化
查看>>
5G:非正交多址接入技术(NOMA)
查看>>
数据中心规划设计中值得注意的八个问题
查看>>
HPE谢少毅:更敏捷的企业服务,做有生命力的落地实践
查看>>
机器学习数据管理初创公司SafeGraph融资1600万美元
查看>>
AngularJS中使用HTML5摄像头拍照
查看>>
前端开发js运算符单竖杠“|”的用法和作用及js数据处理
查看>>
5G时代渐行渐近 移动承载网络面临新挑战
查看>>
从科幻灵感开始的一场数据存储基础设施实验之旅
查看>>
5G前夜 运营商如何实现网络创新?
查看>>
用Async函数简化异步代码
查看>>
企业上云需跨越哪些“雷区”?
查看>>
数据中心网络流量精细运维
查看>>