2015-08-03 66 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。