错误:E0708:E0708:转换无效

时间:2016-06-09 12:24:36

标签: hadoop oozie hadoop2

使用这个tutorial我为hive脚本创建了工作流,但是当我在命令下运行时给出错误:

 oozie job -oozie http://xxx.xx.xx.xx:11000/oozie -config  /home/ec2-user/ankit/oozie_job1/job.properties -submit

我得到的错误是:

  

错误:E0708:E0708:转换无效,节点[Oozie_test]转换[Tester]

我的工作流程代码如下:

<workflow-app name="Tester" xmlns="uri:oozie:workflow:0.1">
<start to="Oozie_test"/>
<action name="Oozie_test">
<hive xmlns="uri:oozie:hive-action:0.2">
 <job-tracker>xxx.xx.xx.xx:8021</job-tracker>
 <name-node>xxx.xx.11.xx:8020</name-node>
 <configuration>
    <property>
         <name>oozie.hive.defaults</name>
         <value>/home/ec2-user/ankit/oozie_job1/hive-default.xml</value>
    </property>
 </configuration>
 <script>hive_job1.hql</script>
</hive>
<ok to="Tester"/>
<error to="fail"/>
</action>
<end name="end"/>
</workflow-app>

由于这是我的第一个oozie工作流程,我无法确切地知道我哪里出错或者我错过了什么。

我试图在互联网上搜索解决方案,但找不到运气。

请告诉我如何解决此错误以及我方需要的其他信息。

4 个答案:

答案 0 :(得分:5)

如果成功执行操作(配置单元),则转换(ok)到节点Tester,但您没有任何名为Tester的节点。那是错误。

理想情况下,如果您的工作流程中只有一个操作,那么成功执行操作应该转到end,您已在工作流程中定义但未使用它。如果失败,您希望转移到kill节点,这在您的工作流程中缺失。如果出现故障/错误,您需要添加kill节点并将hive操作转发给它。

@charantej提供了正确的工作流程。

答案 1 :(得分:1)

as @YoungHobbit Explained

如果成功执行了操作(配置单元),则转换(ok)是指节点测试程序,但是您没有任何名为Tester的节点。这是错误。

理想情况下,如果您的工作流中只有一个操作,那么操作的成功执行应该结束,您已在工作流中定义但未使用它。如果出现故障,您希望转移到kill节点,这在您的工作流程中缺失。如果出现故障/错误,您需要添加一个kill节点并将hive操作传递给它。 试试这个:

<workflow-app name="Tester" xmlns="uri:oozie:workflow:0.1">
<start to="Oozie_test"/>
<action name="Oozie_test">
<hive xmlns="uri:oozie:hive-action:0.2">
 <job-tracker>xxx.xx.xx.xx:8021</job-tracker>
 <name-node>xxx.xx.11.xx:8020</name-node>
 <configuration>
    <property>
         <name>oozie.hive.defaults</name>
         <value>/home/ec2-user/ankit/oozie_job1/hive-default.xml</value>
    </property>
 </configuration>
 <script>hive_job1.hql</script>
</hive>
<ok to="end"/>
<error to="kill"/>
</action>
<kill name="kill">
        <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
        </kill>
        <end name='end' />
</workflow-app>

答案 2 :(得分:1)

ok转换中,您指的是一个节点&#39; Tester&#39;,它在工作流程中不存在。

<ok to="Tester"/>

当任何操作成功运行时,它会查找 ok 转换中给出的节点。

定义一个名为&#39; Tester&#39; 的新操作,或者将其<ok to="end"/>提供给end节点。

答案 3 :(得分:0)

确认您是否已将workflow.xml复制到hdfs。您不需要将job.properties复制到hdfs,但必须将所有其他文件和库复制到hdfs