Pig oozie工作流不执行UDF



我试图通过Oozie执行包含udf的pig脚本,并将结果存储到postgress表中。没有Oozie脚本可以完美运行。使用oozie,脚本执行成功,但不向postgress生成所需的数据。日志显示此警告

2015-08-18 12:05:44,709 [main] WARN org.apache.pig.tools.pigstats.JobStats -无法找到输出文件java.io.FileNotFoundException: File hdfs://:8020/user/oozie/word_cnt does not exist.

经过反复试验,我发现如果我在每个"store"后面放置dump语句,数据就会成功地存储在postgress中。

如果我没有错,工作流.xml似乎有些值丢失{jobTracker} {NameNode}

示例工作流.xml将像
<action name="pigActionForData">
<pig>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>oozie.launcher.mapred.job.queue.name</name>
<value>default</value>
</property>
<property>
<name>mapred.job.queue.name</name>
<value>default</value>
</property>
</configuration>
<script>PigScript.pig</script>
<argument>-param</argument>
<argument>PigInput=/HDFS/LOCATION/FOR/PIG/ONLY/REFERENCE</argument>
</pig>
<ok to="end"/>
<error to="pigActionForDataFailed"/>
</action>
<kill name="pigActionForDataFailed">
<message>Pig Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>

你们都可以直接提到

{jobtracker} = "jobtracker_ip:port"

{namenode} ="hdfs://namenode_ip: port"

最新更新