我正在尝试通过Oozie执行包含UDF的pig脚本,并将结果存储到postgress表中。没有oozie脚本运行完美。 使用oozie,脚本成功执行,但不会将所需数据生成到postgress.Logs显示此警告
2015-08-18 12:05:44,709 [main] WARN org.apache.pig.tools.pigstats.JobStats - 无法找到输出文件 java.io.FileNotFoundException:文件hdfs://:8020 / user / oozie / word_cnt不存在。
做试验和错误我发现如果我在每个“商店”之后放置转储语句,数据就会成功存储在postgress中。
答案 0 :(得分:0)
如果没有错误,Workflow.xml似乎缺少{jobTracker} {NameNode}。
Sammple Workflow.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”
{名称节点} = “HDFS:// namenode_ip:端口”