Hadoop 错误:E0708:E0708:转换无效

Hadoop 错误:E0708:E0708:转换无效,hadoop,oozie,hadoop2,Hadoop,Oozie,Hadoop2,使用此命令,我为配置单元脚本创建了工作流,但在运行以下命令时出错: 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" xmln

使用此命令,我为配置单元脚本创建了工作流,但在运行以下命令时出错:

 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>

xxx.xx.xx.xx:8021
xxx.xx.11.xx:8020
oozie.hive.defaults
/home/ec2 user/ankit/oozie_job1/hive-default.xml
hive_job1.hql
由于这是我的第一个oozie工作流程,我无法确切地知道我哪里出了问题或错过了什么

我试图在互联网上搜索解决方案,但没有找到任何运气


请让我知道如何解决这个错误,以及需要我方提供哪些其他信息。

正如@YoungHobbit解释的那样


在成功执行操作(配置单元)的情况下,将转换(ok)到NodeTester,但您没有任何名为Tester的节点。这就是错误所在

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

<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>

xxx.xx.xx.xx:8021
xxx.xx.11.xx:8020
oozie.hive.defaults
/home/ec2 user/ankit/oozie_job1/hive-default.xml
hive_job1.hql
操作失败,错误消息[${wf:errorMessage(wf:lastErrorNode())}]

在成功执行操作(蜂巢)的情况下,将转换(
确定
)到节点
Tester
,但您没有任何名为
Tester
的节点。这就是错误所在

理想情况下,如果您的工作流中只有一个操作,那么操作的成功执行应该转到
end
,您已经在工作流中定义了该操作,但没有使用它。如果出现故障,您希望过渡到
kill
节点,该节点在您的工作流中缺失。如果出现故障/错误,您需要添加一个
kill
节点,并将您的配置单元操作传输到该节点


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

确定
转换中,您指的是工作流中不存在的节点“Tester”

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


定义一个名为'Tester'的新操作,或将其赋予
这将转到
结束
节点。

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

您获得了正确的工作流,但没有说明OP工作流中的错误。错误消息似乎由于某种原因指向错误的转换,但在“Oozie_测试”中,您的错误转换将“失败”但您没有“失败”节点;你的意思可能是“杀死”。添加了一个解释,请检查。@YoungHobbit Thanx,你可以编辑我的答案本身,而不是发布另一个答案。我已经编辑了你的解释。这可能对任何人都有帮助