我正在使用3.0.4ami(hadoop2.2.0)在elasticmapreduce上运行oozie4.0.1。我已经从源代码构建了oozie,所有的东西都安装好了,而且似乎都正常工作,甚至可以安排一个hive作业。也就是说,我可以连接到web控制台,使用“oozie”命令提交和终止作业,等等,但是。。。我发现任务(到目前为止我已经尝试过“hive”和“shell”)进入prep状态(根据oozie web控制台),但从未真正开始。
我尝试了协调器(cron)作业和基本工作流作业,在这两种情况下得到了相同的行为。它到达配置单元任务节点或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文件中没有看到任何看起来特别有嫌疑的消息。
如有任何想法或建议,我们将不胜感激。
2条答案
按热度按时间pxy2qtax1#
当一个节点中没有足够的空闲插槽时,oozie调度器会一直等待空闲插槽。查看此项了解更多详细信息以及如何增加每个节点的插槽数。
从op中提供的信息来看,这可能是解决方案,也可能不是。
voase2hg2#
协调员将在
PREP
状态当开始时间是在将来时,请在此处阅读有关协调器状态的更多信息。如果您使用的是协调器-可以添加协调器xml文件吗?
另外,如果您可以粘贴与卡住的操作相关的日志,这也会很有帮助