select emp.deptno, emp.ename, emp.empno, emp.job, emp.mgr, emp.mgr, emp.hiredate, emp.sal, emp.comm, dept.dname, dept.loc from emp join dept on from emp.deptno = dept.deptno;
它是9gb的数据。它是在减速器问题。它在减速器99%的重击。我已将减速机增加到150,但没有结果。
9ceoxa921#
一个歪斜的连接只会向一个减速机发送不成比例的大量值,并且您会得到一个99%作业完成综合症的长尾,因此可能会遇到这种情况。查看作业日志(特别是io)可以发现这是否是罪魁祸首。在这种情况下,您可以使用倾斜连接优化,这反过来又依赖于列表bucketing。您必须确定哪些键值( depno )严重扭曲并在ddl中相应声明:
depno
alter table emp (schema) skewed by (depno) on ('<skewedvalue>');
阅读链接文章了解详细信息,查看hive-3086的评论和更改。
kmbjn2e32#
您可以使用:
set mapred.reduce.tasks=113
您的问题可能与数据偏斜有关(这意味着某些键非常密集)。
2条答案
按热度按时间9ceoxa921#
一个歪斜的连接只会向一个减速机发送不成比例的大量值,并且您会得到一个99%作业完成综合症的长尾,因此可能会遇到这种情况。查看作业日志(特别是io)可以发现这是否是罪魁祸首。
在这种情况下,您可以使用倾斜连接优化,这反过来又依赖于列表bucketing。您必须确定哪些键值(
depno
)严重扭曲并在ddl中相应声明:阅读链接文章了解详细信息,查看hive-3086的评论和更改。
kmbjn2e32#
您可以使用:
您的问题可能与数据偏斜有关(这意味着某些键非常密集)。