我尝试用我的查询前缀:
set mapred.running.reduce.limit = 25;
并且
set hive.exec.reducers.max = 35;
最后一个人将530减速器的工作减少到35 ......这让我觉得它会尝试将减少零件的零件减少到35个。
现在给予
set mapred.tasktracker.reduce.tasks.maximum = 3;
尝试查看该数字是否是每个节点的某种最大值(以前在具有70个潜在减速器的群集上为7)。
更新
set mapred.tasktracker.reduce.tasks.maximum = 3;
没有效果,值得一试。
答案 0 :(得分:1)
不完全是问题的解决方案,但可能是一个很好的妥协。
set hive.exec.reducers.max = 45;
对于具有400+减速器的厄运的超级查询,这会将最昂贵的蜂巢任务监控到总共减少35个。我的集群目前只有10个节点,每个节点支持7个减速器......所以实际上只有70个减速器可以一次运行。通过将工作量减少到70以下,我注意到速度略有提高,而最终产品没有任何明显变化。在生产中对此进行测试,以确定这里到底发生了什么。在此期间,这是一个很好的妥协解决方案。