我有簇HDFS塊大小爲64 MB。我有包含100個純文本文件的目錄,每個文件的大小都是100 MB。該工作的InputFormat
是TextInputFormat
。多少個Mapper將運行?Hadoop Mapper:適當的輸入文件大小?
我在Hadoop開發人員考試中看到了這個問題。答案是100.其他三個答案選項是64,640,200。但我不確定100是如何來的或答案是錯誤的。
請指導。提前致謝。
我有簇HDFS塊大小爲64 MB。我有包含100個純文本文件的目錄,每個文件的大小都是100 MB。該工作的InputFormat
是TextInputFormat
。多少個Mapper將運行?Hadoop Mapper:適當的輸入文件大小?
我在Hadoop開發人員考試中看到了這個問題。答案是100.其他三個答案選項是64,640,200。但我不確定100是如何來的或答案是錯誤的。
請指導。提前致謝。
我也是這樣想的,這似乎錯
當然,除非有更多的考試問題沒有貼:
爲了公平對待考題和「正確」答案,我們需要完整的考題。
正確的答案應該是200(如果該文件塊的大小都是默認64MB,並且文件或者未被壓縮,或具有可分離的編解碼器,如活潑的壓縮)
看起來像是對我錯了。
但它可能在以下情況下是正確的:
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是不正確的答案。
每個文件將被分成兩個作爲塊大小(64 MB)小於文件大小 (100 MB),因此200個映射器將運行