Oozie工作流程错误

时间:2016-01-26 04:21:28

标签: oozie

我正在尝试编写一个简单的Oozie工作流来执行简单的配置单元脚本。 hive脚本执行正常,没有任何问题,但是在执行工作流时遇到问题。

workflow.xml如下:



<workflow-app xmlns="uri:oozie:workflow:0.4" name="nielsen_dma_xref_intr_dly_load_wf">

<credentials>
<credential name="hive2_cred" type="hive2">
<property>
<name>hive2.jdbc.url</name>
<value>${hive2_jdbc_uri}</value>
</property>
<property>
<name>hive2.server.principal</name>
<value>${hive2_server_principal}</value>
</property>
</credential>
</credentials>

<start to="nielsen_dma_xref_intr_dly_load_wf_start"/>    

<action name="hive_load_nielsen_dma_xref_oozie" cred='hive2_cred'>
<hive2 xmlns="uri:oozie:hive2-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<job-xml>${hiveSiteXML}</job-xml>
<jdbc-url>${jdbc_hive}</jdbc-url>
<password>${password}</password>
<script>${scripts}/nielsen_dma_xref_load.hql</script>
<param>db_dbname_dbname=${db_dbname}</param>
</hive2>
<ok to="hive_load_nielsen_dma_xref_oozie"/>
<error to="fail"/>
</action>

<kill name="fail">
<message>Workflow failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>

<end name="nielsen_dma_xref_intr_dly_load_wf_completed"/>

</workflow-app>
&#13;
&#13;
&#13;

所有文件都放在HDFS /user/kchandr2/wf 文件夹下

我正在使用 oozie job -oozie http://<<hostname>>:11000/oozie -config /home/kchandr2/wf/nielsen_dma_xref_intr_dly_load_wf.properties -run -verbose >> /home/kchandr2/wf/Logs/nielsen_dma_xref_intr_dly_load_wf_$(date '+%Y%m%d').log 2>&1 命令执行wrokflow,其中属性文件放在本地目录 /home/kchandr2/wf

我收到 Error: E0706 : E0706: Node cannot transition to itself node [hive_load_nielsen_dma_xref_oozie]

1 个答案:

答案 0 :(得分:1)

在你的hive2动作中

<action name="hive_load_nielsen_dma_xref_oozie" cred='hive2_cred'>

你有一个“ok”过渡到同一个动作节点

<ok to="hive_load_nielsen_dma_xref_oozie"/>

这是不允许的。这就是你得到错误的原因:

Error: E0706 : E0706: Node cannot transition to itself node [hive_load_nielsen_dma_xref_oozie]

Oozie工作流程是DAG(直接非循环图)。你不能有循环。