蜂巢加入失败 mr.MapredLocalTask

Posted

技术标签:

【中文标题】蜂巢加入失败 mr.MapredLocalTask【英文标题】:hive join failed mr.MapredLocalTask 【发布时间】:2017-09-11 10:47:18 【问题描述】:

我是 HIVE 和 HADOOP 的新手,在这里我试图加入 hive 中的两个示例表,其中这些表没有任何主外键关系,只是为了练习:- 表格如下

  Employees table:-
                id   name    gender   salary  departmentid      

                 1    mark      male    3333    1
                 2    Steve     male    5464    3
                 3    Ben       male    3873    2
                 4    bender    male    9298    1
                 5    fender    male    654     2

 departments table:-
             id    name     location

             1     IT        NEW YORK
             2     HR        LONDON
             3     PAYROLL   SYDNEY  

hive>  select employees.name as employee_name, departments.name as department_name
    >  from employees         
    >  join departments on departments.id = employees.departmentid;

结果:-

查询 ID = cloudera_20170911030505_93378edb-f8b8-45d0-9141-3fe065211f3d 工作总数 = 1 FAILED:执行错误,从 org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask​​ 返回代码 1

因为我是 SQL 的新手,所以建议我如何解决这个错误?任何帮助,将不胜感激。

【问题讨论】:

您能否粘贴整个堆栈跟踪以提高清晰度。 查询 ID = cloudera_20170911041010_375af566-cc17-4649-b992-7a8a10685316 Total jobs = 1 FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask​​跨度> 已提出类似问题。请查看此链接:community.cloudera.com/t5/Web-UI-Hue-Beeswax/…。 惊讶地看到只有 2 行错误。检查您是否可以获得完整的堆栈跟踪。这将有助于指出确切的根本原因。 community.cloudera.com/t5/Web-UI-Hue-Beeswax/...。 【参考方案1】:

查询:

选择employees.name 作为employee_name,departments.name 作为department_name 来自员工 T1 在 T1.departmentid=T2.id 上加入部门 T2;

Hive 到 0.13 版不支持主键概念。这已在 hive 的后续版本中引入。 因此,我们只需要注意列是否存在,如果列中存在重复,它将创建多条记录。 如果你想有一些其他的用例,你可以尝试使用左外连接、右外连接、完全连接。使用交叉连接时要小心。

如果错误仍然存​​在,请发送有关您使用的表架构的更多详细信息。您可以使用 show create table db_name.table_name 查看完整的架构。

【讨论】:

【参考方案2】:

设置 hive.auto.convert.join=false;修复了我的问题..

【讨论】:

以上是关于蜂巢加入失败 mr.MapredLocalTask的主要内容,如果未能解决你的问题,请参考以下文章

hive-05-Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask

如何加入蜂巢[关闭]

在火花中加入两个存在于蜂巢中的表

蜂巢地图加入。 Hive 选择更大的表存储在缓存中

蜂巢中的表连接失败

蜂巢开始失败