TDH 4.3 inceptor组件metastore连接池满了解决办法

  原理, 交警集成指挥平台
内容纲要

概要描述


本文主要讲述inceptor组件在使用时由于metastore线程池被占满导致inceptor使用异常的问题。

详细说明


inceptor组件metasotre session个数默认只有1000个,虽然页面上的参数hive.metastore.server.max.threads是100000,但是是无效的。当session超过1000个时会导致metastore挂掉,需要进行修改。

1. 使用 TDH Manager 访问星环大数据界面,如下图

file

2. 点击进入 inceptor 组件,查看 inceptor metastore 节点

file

3. 使用工具 ssh 登陆访问任意 inceptor metastore 所在服务器,查看 metastore 日志,一般可以看到如下报错
Task has been rejected by ExecutorService 9 times till
timedout, reason: java.util.concurrent.RejectedExecutionException: Task
org.apache.thrift.server.TThreadPoolServer$WorkerProcess@46993
52 rejected from
java.util.concurrent.ThreadPoolExecutor@59cda1bd[Running, pool
size = 1000, active threads = 1000, queued tasks = 0, completed
tasks = 38034]

pool size 与 active threads 相等,则发出“metastore线程池被占满”的告警!

4. 调整 inceptor 组件 metastore 连接池参数

调整 hive.metastore.server.max.threads 为更大的值(大于1000)如 3000 或者其他值,保存后 配置服务,重启即可,成功后可以在 /etc/inceptorsql1/conf/hive-site.xml 文件里面看到参数值

file

file

hive.metastore.server.max.threads 默认值为 100000 未修改过情况下, /etc/inceptorsql1/conf/hive-site.xml 里面可能看不到此参数

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。