Oozie 工作流程错误

Oozie work flow error

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

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>

所有文件都放在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]

在您的 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(有向无环图)。你不能有循环。