hive连接数异常升高,线程卡死异常分析

    最近使用hue 查询hive 出现超时,sql提交无反应。cdh监控发现HS2连接数直线上升,cpu使用率升高一直占用cpu,如下图:

使用netstat命令查看端口连接状态,发现端口出现大量FIN_WAIT2的状态,重启hive后恢复正常。开始怀疑是网络丢包问题,检查服务器上其它进程正常,隔段时间问题重新,怀疑是hive服务本身卡死,端口状态如图:

jstack打印程序堆栈信息,发现hive工作线程全部堵塞,等待锁,堆栈如下:

从堆栈可以看出hive都卡在编译上,都在等待一条正在编译的sql释放锁,而正在编译的sql一直在编译没有释放锁,线程卡死。从hive日志中将出问题这段时间的sql找出来进行测试执行,找到了一条sql,只要一跑hive就会卡死,出现上面的问题。这条sql select * from xxx limit 10 。查看这张表的信息:分区表,分区数据有三年的数据,表字段特别多有3000多个字段。将sql 指定分区及字段正常运行。

 总结: hive 表分区及字段太多超过上千字段会导致hive sql编译线程卡死,导致hive异常。写sql 时必须指定分区,字段,裁剪掉不必要的字段及分区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值