2012-10-12 34 views
1

我有簇HDFS塊大小爲64 MB。我有包含100個純文本文件的目錄,每個文件的大小都是100 MB。該工作的InputFormatTextInputFormat。多少個Mapper將運行?Hadoop Mapper:適當的輸入文件大小?

我在Hadoop開發人員考試中看到了這個問題。答案是100.其他三個答案選項是64,640,200。但我不確定100是如何來的或答案是錯誤的。

請指導。提前致謝。

回答

4

我也是這樣想的,這似乎錯

當然,除非有更多的考試問題沒有貼:

  • 難道這些「純」文本文件gzip壓縮的 - 在這種情況下,它們不可拆分?)
  • 羣集分割大小可能是64MB,但輸入文件的分配大小是多少?128MB?

爲了公平對待考題和「正確」答案,我們需要完整的考題。

正確的答案應該是200(如果該文件塊的大小都是默認64MB,並且文件或者未被壓縮,或具有可分離的編解碼器,如活潑的壓縮)

0

看起來像是對我錯了。

但它可能在以下情況下是正確的:

1)如果我們覆蓋isSplitable方法,如果我們返回false,那麼地圖的任務數量將與輸入相同的文件數量。在這種情況下,它將是100.

2)如果我們配置mapred.min.split.size,mapred.max.split.size變量。默認情況下,最小拆分大小爲0,最大拆分大小爲Long.MAX 。

下面是它用來識別映射器數量的函數。

MAX(mapred.min.split.size,分鐘(mapred.max.split.size,塊大小))

在這種情況下,如果我們mapred.min.split.size配置爲100,然後我們將有100個映射器。

但根據給定的信息,我認爲100是不正確的答案。

0

每個文件將被分成兩個作爲塊大小(64 MB)小於文件大小 (100 MB),因此200個映射器將運行