searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

hiveserver2 jvm线程数一直增加

2024-05-16 09:46:08
12
0
当前hive版本是1.1.0-cdh5.12.1
在监控页面查看hiveserver2的线程数如下

这说明hiveserver2的线程可能存在没有关闭的情况,在hiveserver2使用jstack去查看线程总数如下

我们看到hiveserver2竟然有15145个线程存活着,但是metastore只有542,hiveserver2的线程数肯定不正常,那么是什么导致的呢?
我们使用arthas的thread去监控各种线程的状态如下

发现为WAITING的特别多,线程名是Get-Input-Path-xxx,根据这个线程名去搜索这个线程是干什么的,发现这个是使用多线程去扫描目录下的文件信息的,这个多线程多少是由参数hive.exec.input.listing.max.threads和目录数的最小值决定
去查找这个关键字,发现了HIVE-16949的patch,发现这个patch刚好和我们这个匹配,于是打上这个patch
更新一晚之后观察如下,我们看到线程数很低了,也就是线程已经正常关闭了

0条评论
0 / 1000
曾****亮
3文章数
0粉丝数
曾****亮
3 文章 | 0 粉丝
原创

hiveserver2 jvm线程数一直增加

2024-05-16 09:46:08
12
0
当前hive版本是1.1.0-cdh5.12.1
在监控页面查看hiveserver2的线程数如下

这说明hiveserver2的线程可能存在没有关闭的情况,在hiveserver2使用jstack去查看线程总数如下

我们看到hiveserver2竟然有15145个线程存活着,但是metastore只有542,hiveserver2的线程数肯定不正常,那么是什么导致的呢?
我们使用arthas的thread去监控各种线程的状态如下

发现为WAITING的特别多,线程名是Get-Input-Path-xxx,根据这个线程名去搜索这个线程是干什么的,发现这个是使用多线程去扫描目录下的文件信息的,这个多线程多少是由参数hive.exec.input.listing.max.threads和目录数的最小值决定
去查找这个关键字,发现了HIVE-16949的patch,发现这个patch刚好和我们这个匹配,于是打上这个patch
更新一晚之后观察如下,我们看到线程数很低了,也就是线程已经正常关闭了

文章来自个人专栏
大数据引擎
3 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0