2014-10-07 36 views
0

是一個有點新的映射簡化所以如果有人能指導我用下面的問題,這將是巨大MultitpleOutputFormat - Hadoop的

  1. 我用多輸出格式寫入單獨的輸出文件的映射減少。假設我的輸入文件有水果和蔬菜,因此我將它分成兩個文件。水果和蔬菜如下。

    水果-R-00000,蔬菜-R-00000,部分-R-00000

    感到困惑多少減速運行?我知道默認情況下減速器的數量設置爲1,並且由於文件名的數字部分相同,我相信只有一個減速器運行。我的理解是否正確? 另外爲什麼部分r-00000文件被創建?我將所有輸出寫入Fruits文件或Vegetable文件中。

  2. 如果我有1 GB的數據需要處理,我將如何確定使用的最佳減速器數量?

回答

0

1.本輸出亮點MultipleOutputsMultipleOutputFormat之間的主要區別之一。當使用MultipleOutputs可以輸出到減速機的常規OutputCollector,或到OutputCollector名爲輸出,或兩者,這就是爲什麼你看到部分NNNNN文件。

2.您可以根據BenchMarking決定減速器的最佳數量,並使用不同數量的減速器。它也取決於數據的處理。

舉個例子,我們打算用2個reducer來處理1 GB,這會產生一小部分的處理。但是對於其他MR工作,我們需要爲1GB文件設置5個reducer,這會產生某種巨大的處理/計算。所以最好設定基準。

0
one reducer will run ,it has nothing to do with part of file name , no of reducer would be either specified by the user by default it calculated the size of the input file and amount of work which need to be done in reducers . 

part-r-00000 : This is related with partitioning, Since we have one reducer so all partitions will point to this file 

Number of reduces in most cases specified by users. It mostly depends on amount of work, which need to be done in reducers. But their number should not be very big, because of algorithm, used by Mapper to distribute data among reducers. Some frameworks, like Hive can calculate number of reducers using empirical 1GB output per reducer.