我正在做一個具有單個200MB文件的MapReduce。我的目標是完成1個地圖任務。我做了:將Hadoop配置爲將輸入文件處理爲一個地圖任務
Configuration conf = new Configuration();
conf.set("mapred.min.split.size","999999999999999");
但是,仍然看起來,記錄的數量限制了我。這是分裂地圖任務的原因嗎?如果是這樣,我可以做些什麼來改變它?
14/03/20 00:12:04 INFO mapred.MapTask: data buffer = 79691776/99614720
14/03/20 00:12:04 INFO mapred.MapTask: record buffer = 262144/327680
14/03/20 00:12:05 INFO mapred.MapTask: Spilling map output: record full = true
我已經試過,以前,不工作。 TextInputFormat將我的文件分割成每行一條記錄。看起來,當它有> 262144條記錄時,它會自動泄漏給一個新的映射器。 – springcold
哦!真奇怪。那麼你是否說,即使isSplittable()返回false,該文件被拆分?我認爲hadoop根本不在乎文件中的記錄數量,它根據文件大小和DFS塊大小進行分割。 – Amar
哈哈..我也是這樣讀的,雖然我不太熟悉溢出的概念 – springcold