主要类[org.apache.oozie.action.hadoop.HiveMain]的Hive操作失败,退出代码[40000]

我是新手,所以我完全有可能错过一些基本的东西.

我正在尝试运行一个从协调员开始的Oozie工作流程.协调器等待文件显示在目录中.工作流包含运行此脚本的Hive操作:

CREATE external TABLE IF NOT EXISTS daily_dump (
        id bigint,
        creationdate timestamp,
        datelastupdated timestamp,
        data1 string,
        data2 string) LOCATION '/data/daily_dump';

FROM daily_dump d 
INSERT OVERWRITE TABLE mydata_orc 
PARTITION(id, datelastupdated) 
SELECT d.id, d.creationdate, d.datelastupdated, d.data1, d.data2;

DROP TABLE daily_dump;

如果我从hive CLI手动运行脚本,它可以正常工作.

当_SUCCESS文件出现时,工作流程正确启动.它
似乎脚本已经执行了一半,因为我可以从hive CLI看到
表“daily_dump”已创建.我可以在其中看到数据.我检查了hivemetastore.log并没有看到任何错误.

但之后的声明似乎在Oozie中因此错误而死:

2015-01-30 18:04:40,086  WARN HiveActionExecutor:542 - USER[me] GROUP[-]
TOKEN[] APP[guzzler] JOB[0000162-150114210350250-oozie-oozi-W]
ACTION[0000162-150114210350250-oozie-oozi-W@copy_to_mydata] Launcher
ERROR, reason: Main class [org.apache.oozie.action.hadoop.HiveMain], exit
code [40000]

错误40000是什么意思?

我的hive.log显示了脚本中的最后一个命令(DROP TABLE),之后没有ERROR日志记录:

2015-01-30 15:25:05,001 INFO  ql.Driver (Driver.java:execute(1197)) - Starting command:

DROP TABLE daily_dump
2015-01-30 15:25:05,001 INFO  hooks.ATSHook (ATSHook.java:<init>(85)) - Created ATS Hook
2015-01-30 15:25:05,001 INFO  log.PerfLogger (PerfLogger.java:PerfLogBegin(108)) - <PERFLOG method=PreHook.org.apache.hadoop.hive.ql.hooks.ATSHook from=org.apache.hadoop.hive.ql.Driver>
2015-01-30 15:25:05,001 INFO  log.PerfLogger (PerfLogger.java:PerfLogEnd(135)) - </PERFLOG method=PreHook.org.apache.hadoop.hive.ql.hooks.ATSHook start=1422631505001 end=1422631505001 duration=0 from=org.apache.hadoop.hive.ql.Driver>
2015-01-30 15:25:05,001 INFO  log.PerfLogger (PerfLogger.java:PerfLogEnd(135)) - </PERFLOG method=TimeToSubmit start=1422631504958 end=1422631505001 duration=43 from=org.apache.hadoop.hive.ql.Driver>
2015-01-30 15:25:05,001 INFO  log.PerfLogger (PerfLogger.java:PerfLogBegin(108)) - <PERFLOG method=runTasks from=org.apache.hadoop.hive.ql.Driver>
2015-01-30 15:25:05,001 INFO  log.PerfLogger (PerfLogger.java:PerfLogBegin(108)) - <PERFLOG method=task.DDL.Stage-0 from=org.apache.hadoop.hive.ql.Driver>
2015-01-30 15:25:05,095 INFO  log.PerfLogger (PerfLogger.java:PerfLogEnd(135)) - </PERFLOG method=runTasks start=1422631505001 end=1422631505095 duration=94 from=org.apache.hadoop.hive.ql.Driver>

我正在运行oozie-4.0.0,hive-0.13.有人有什么想法吗?

最佳答案 我们解决了这个问题.事实证明,Hive运行我的蜂巢脚本很好,但它在/ tmp / hive-yarn中创建临时文件时遇到了麻烦.该目录由首先在此群集中运行其脚本的人拥有.我以我的用户身份运行它,并且没有权限在该目录中写入.

我们如何找到它是通过转到与Hive操作关联的实际Hadoop作业日志.实际错误未正确传播到Hive日志和Oozie日志. 🙁

点赞