错误:e0708:e0708:转换无效

wnrlj8wa  于 2021-06-02  发布在  Hadoop
关注(0)|答案(4)|浏览(352)

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

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

我得到的错误是:
错误:e0708:e0708:无效转换,节点[oozie\u 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工作流程,我无法确切地知道我哪里出错了,或者我错过了什么。
我试着在网上搜索这个问题的解决方案,但没有找到任何运气。
请让我知道如何解决这个错误和什么其他信息是我这边需要的。

gzszwxb4

gzszwxb41#

ok 转换时,您指的是工作流中不存在的节点“tester”。 <ok to="Tester"/> 当任何操作成功运行时,它将查找ok transition中给定的节点。
要么定义一个名为“tester”的新操作,要么给出它 <ok to="end"/> 这将被送到 end 节点。

vd2z7a6w

vd2z7a6w2#

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

qeeaahzv

qeeaahzv3#

在成功执行动作(配置单元)的情况下,转换( ok )是到节点的 Tester ,但您没有任何名为 Tester . 这就是错误。
理想情况下,如果工作流中只有一个操作,那么操作的成功执行应该转到 end ,已在工作流中定义但未使用它。如果发生故障,您希望转到 kill 节点,工作流中缺少该节点。你需要添加一个 kill 节点并将配置单元操作传递给它,以防出现故障/错误。
@charantej提供了正确的工作流程。

evrscar2

evrscar24#

正如霍比特人所解释的那样
在成功执行操作(hive)的情况下,将转换(ok)到node tester,但您没有任何名为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>

相关问题