我是新手,所以我完全有可能错过一些基本的东西.
我正在尝试运行一个从协调员开始的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日志. 🙁