hive cbo优化引起的bug

文章讨论了Hive中的stats.fetch.column.stats参数如何导致在混部集群环境下,由于任务reduce个数设置过小(默认为2),当map任务处理大量数据时,任务因资源不足而失败。通过对比执行计划发现,开启该参数后,Hive误估了数据量,实际是几十亿行。关闭该参数后,reduce任务数量显著增加至1100个,解决了问题。

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

  1. hive.stats.fetch.column.stats导致reduce个数划分太小

    有一个任务,在混部集群默认开启,导致任务reduce个数太小,只启了2个reducetask,而maptask中读取的数据又很大,使得大量数据都写到这2个reduce task中,任务最终失败,在关闭这个参数后,可以启动1100个reducetask。

    怎么发现这个问题的:

    对比执行计划,在开启这个参数后,hive 认为只会读取50000多行数据,而实际上是几十亿
    image-20230519185013534

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值