我使用3.0.4 AMI(Hadoop 2.2.0)在Elastic Mapreduce上运行Oozie 4.0.1。我已经从源代码构建了Oozie,并且所有内容都安装并且似乎正常工作,直到安排Hive作业。也就是说,我可以使用&#o; oozie'来连接到Web控制台,提交和终止作业。但是......我发现任务(我已经尝试过#34; Hive"和#34; Shell"到目前为止)进入PREP状态(根据Oozie网站 - 控制台)但从未真正开始。
我已经尝试过协调员(cron)工作和基本工作流程工作,并且在任何一种情况下都获得了相同的行为。它将进入hive任务节点或shell任务节点,然后挂起。
对于基本工作流任务,这里是job.properties的样子:
nameNode=hdfs://ip-redacted.ec2.internal:9000
jobTracker=ip-redacted.ec2.internal:9026
queueName=default
examplesRoot=examples
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/shell
,workflow.xml如下所示:
<workflow-app xmlns="uri:oozie:workflow:0.4" name="shell-wf">
<start to="shell-node"/>
<action name="shell-node">
<shell xmlns="uri:oozie:shell-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<exec>echo</exec>
<argument>my_output=Hello Oozie</argument>
<capture-output/>
</shell>
<ok to="check-output"/>
<error to="fail"/>
</action>
<decision name="check-output">
<switch>
<case to="end">
${wf:actionData('shell-node')['my_output'] eq 'Hello Oozie'}
</case>
<default to="fail-output"/>
</switch>
</decision>
<kill name="fail">
<message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<kill name="fail-output">
<message>Incorrect output, expected [Hello Oozie] but was [${wf:actionData('shell-node')['my_output']}]</message>
</kill>
<end name="end"/>
</workflow-app>
我没有在oozie.log文件中看到任何看起来特别有罪的消息。
非常感谢任何想法或建议。