论坛首页 综合技术论坛

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

浏览 1323 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-09-05  

我们先看一看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

  • 大小: 12.1 KB
  • 大小: 1.3 KB
  • 大小: 2 KB
  • 大小: 2.5 KB
  • 大小: 2.9 KB
  • 大小: 3.7 KB
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics