2012-07-26 40 views
8

在本地運行PIG腳本和mapreduce之間的實際區別是什麼? 我知道mapreduce模式是當你在安裝hdfs的集羣上運行它時。這是否意味着本地模式不需要HDFS,因此即使mapreduce作業也不會被觸發?有什麼區別,你什麼時候有另一個?PIG local和mapreduce模式之間的區別

回答

8

本地模式將建立一個模擬的mapreduce作業,運行在磁盤上的本地文件中。理論上相當於MapReduce,但它不是一個「真正的」先生的工作。你不應該能夠從用戶的角度來分辨差異。

本地模式非常適合開發。

+1

需要注意的一件事是,本地模式下不支持計數器,但這是由於Hadoop Map/Reduce而不是Pig。 – cyang 2012-07-28 00:51:10

6

本地模式:所有腳本都在一臺機器上運行,不需要Hadoop MapReduce和HDFS。這對於開發和測試Pig邏輯非常有用。如果您使用一小部分數據來開發或測試您的代碼,那麼本地模式可能比通過MapReduce基礎架構更快。

本地模式不需要Hadoop。在本地模式下運行時,Pig程序在本地Java虛擬機的上下文中運行,並且數據訪問是通過單個機器的本地文件系統訪問的。本地模式實際上是Hadoop的LocalJobRunner類中MapReduce的本地模擬。

MapReduce模式(也稱爲Hadoop模式):Pig在Hadoop集羣上執行。在這種情況下,Pig腳本被轉換爲一系列MapReduce作業,然後在Hadoop集羣上運行。 LOcal and Distributed mode of pig

如果您有一個要執行操作的數據並希望以交互方式開發一個程序,您可能很快就會發現事情變得非常緩慢,並且您可能會開始增加存儲量。本地模式允許您以更加交互的方式處理數據的一部分,以便您可以找出Pig程序的邏輯(並計算出錯誤)。

當您按照自己的意願設置好自己的操作並且操作平穩運行之後,就可以使用MapReduce模式針對完整數據集運行該腳本。

相關問題