2015-08-03 55 views
1

我想在本地模式下,这是很容易 猪-x当地file.pig运行PIG从Oozie的

我的要求是从以本地模式运行PIG运行PIG本地模式OOZIE? 是否可以像我认为的OOZIE会先自动启动地图任务?

回答

0

这是可能的。当猪脚本由Oozie运行时,它将作为单图映射缩减作业运行,该作业仅运行猪脚本,然后运行其他映射减少作业(当猪以mapred模式运行时)。

看来,Pig动作配置不允许在本地模式下运行,但您仍然可以使用shell动作类型以本地模式运行Pig脚本。您只需确保您的脚本,输入和输出数据都在HDFS中。

+0

感谢您的回答 但本地模式下的Pig从本地文件系统加载/存储数据而不是HDFS。 保持对hdfs的猪是有道理的,但在hdfs doest上的输入和输出路径有意义吗? 你能告诉我如何为它编写oozie工作流程吗? –

+0

你应该知道Oozie是如何运行的。它使用一个映射器和不含reducer的map-reduce作业运行猪或shell脚本。因此,执行节点是从map-reduce集群中随机选择的。所以你不能说在哪个节点上运行你的脚本。因为使用本地文件系统没有意义,所以使用HDFS是因为它在所有节点上都可用。以“hdfs:// namenode:port/path/to/file”的形式使用完整URI来引用猪脚本中的HDFS路径。 –

+0

如果您在Oozie的本地模式下运行猪时提供了一些推理,那将非常有用。 –

0

我不认为,我们可以从oozie以本地模式运行猪。维沙尔写的评论是有道理的。在某些情况下,如果数据量较少,最好在本地模式下使用猪。要以本地模式运行,您可以通过编写shell脚本并在crontab中安排它来运行。如果您通过oozie尝试此操作。根据我的知识,这将不太合适,因为Oozie是为了在HDFS中运行。

如果你想oozie运行一些数据。它预计数据将在HDFS中(即分布式)。而且您必须在hdfs.s中拥有猪脚本。我从AlanGates看到帖子,他提到PIG用于处理来自/到HDFS的数据,而配置单元用于本地到HDFS或HDFS到HDFS。