hive metastore导致集群阻塞

博客内容提到,HiveMetastore频繁报错,查询缓慢,原因是PARTITION_PARAMS表中使用了包含40000个part_id的大IN()查询,导致数据库阻塞。Hive3.0后默认开启CBO和统计分析,可能加重此问题。建议关闭CBO和自动统计,并增大metastore连接池。设置如下:

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hive metastore频繁报错,hive集群查询很慢。在这里插入图片描述ObjectStore.java:handleDirectSqlError(3741)) - Falling back to ORM path due to direct SQL failure (this is not an error): Error executing SQL query “select “PART_ID”, “PARAM_KEY”, “PARAM_VALUE” from “PARTITION_PARAMS” where “PART_ID” in (10522894,10522897,…,22062033,22062776) and “PARAM_KEY” is not null order by “PART_ID” asc”. at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:543) at org.datanucleus.api.jdo.JDOQuery.executeInternal(JDOQuery.java:391)
分析hive metastore日志发现有 对PARTITION_PARAMS表查询,切in()中有包含40000左右的part_id,导致源数据库查询阻塞。

在这里插入图片描述分析发现hive3.0之后,默认开启了cbo ,开启统计分析。
然后执行计划会取这些数据去优化执行计划。
建议关闭统计分析,可以在用的时候在客户端set true:
set hive.cbo.enable=false
set hive.stats.autogather=false;
set hive.stats.column.autogather=false;
并建议增加metastore连接池:
datanucleus.connectionPool.maxPoolSize=10 默认值为10,改成50

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值