0
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;

IT 是 9GB 数据。它在减速器上出现问题。它在减速器 99% 处出现问题。我已将减速器增加到 150,但它没有给出结果。

4

2 回答 2

0

一个倾斜的连接只会向一个减速器发送不成比例的大量值,你会得到一个 99% 的工作完成综合症的长尾,所以可能正在经历这种情况。查看作业日志(特别是 IO)将揭示这是否是罪魁祸首。

在这种情况下,您可以使用倾斜连接优化,而后者又依赖于List Bucketing。您必须确定哪些键值 ( depno) 严重倾斜,并在 DDL 中相应地声明它:

alter table emp (schema) skewed by  (depno) on ('<skewedvalue>');

阅读链接文章了解详细信息,查看HIVE-3086的评论和更改。

于 2013-09-11T18:28:32.660 回答
0

您可以使用:

    set mapred.reduce.tasks=113

而且您的问题可能与数据偏斜有关(这意味着某些键非常密集)。

于 2013-09-11T10:16:20.287 回答