FusionInsight HD Hive并发过多导致MetaStore连接超时

发布时间:  2016-09-10 浏览次数:  512 下载次数:  0
问题描述

FusionInsight版本:FusionInsight V100R002C30LCN002

单平面组网

Hive并发过多导致MetaStore连接超时


告警信息

生产环境执行加载作业失败。该作业应用层报出“取元数据Error” 的异常。该加载作业失败,对应的语句为 alter table CM_PRS_PTHRSPCN_S add partition(pt_dt='2016-04-29')

在应用层报出 取元数据Error”的异常,错误信息如下图

Hive层报出等待可用连接超时的异常,错误信息如下图 


处理过程

用户提交了多个Hive任务,这些任务并发执行的时候占用metastore连接时间较长,这个时候后续提交的一些任务在需要获取metastore连接的时候一直获取不到,处于等待状态,若等待的时间过长,就会出现超时的异常,即提示“等待可用连接超时”。

一般情况下,如果任务执行时间较短,或并发数量较少的话,则连接用完后会立即释放,不会出现此问题。


根因

产品对用户的任务量以及每个任务的执行时间不能感知,需要根据现场的实际情况对相关的参数进行调节。涉及到的相关参数有:

maxConnectionsPerPartition 分区最大的连接数量,默认为10

参数的解释:

相关的连接池可看作被分成了多个分区,每个分区有自己的最大连接数的限制

解决方案

修改连接池的相关设置,适当调整分区可处理的最大连接数。

FI -> Service -> Hive -> Configuration -> MetaStore (DB)修改对应的处理连接数maxConnectionsPerPartition建议设置成 100 (不能超过最大值300),重启Hive服务。

建议值100是根据与工行规模相当集群的设置作参考,尽量大满足连接数请求的同时考虑connection占用资源(如果connection太多会占用太多的内存资源)的角度做出的一个综合评估值。

END