hive reduce资源数过多导致集群内资源堵塞方案解决

我们先看一看map中对reduce个数产生影响的两个参数

hive.exec.reducers.bytes.per.reducer(每个reduce任务处理的数据量,默认为1000^3=1G) 
hive.exec.reducers.max(每个任务最大的reduce数,默认为999)

hive计算reducer数的公式很简单N=min(参数2,总输入数据量/参数1) ,即如果reduce的输入(map的输出)总大小不超过1G,那么只会有一个reduce任务.。

针对有些hql,由于我们的产生的计算中间数据量很庞大,那么必然到导致我们的reduce数目过大,甚至超过我们现有集群的全部reduce slots,如果计算时间过长, 这必然导致后续提交的reduce任务处于超长的等待阶段,解决办法办法为一下两种

1.更换或者实现更加公平的作业调度器。

2.限制 hive.exec.reducers.max = 集群内slots的*0.75

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值