我有一個456kb文件正在從hdfs中讀取,並將其作爲輸入提供給mapper函數。每行都包含一個整數,我正在下載一些文件並將它們存儲在本地系統上。我已經Hadoop的設置雙節點羣集上和分割尺寸從程序更改爲打開8映射器:處理小文件映射減少hadoop
Configuration configuration = new Configuration();
configuration.setLong("mapred.max.split.size", 60000L);
configuration.setLong("mapred.min.split.size", 60000L);
創建8個映射器,但相同的數據都在服務器上下載的,我認爲它的發生因爲塊大小仍然被設置爲默認值256mb並且輸入文件被處理兩次。所以我的問題是我們可以使用map reduce來處理一個小尺寸的文件嗎?
該框架不會阻止您處理小文件。但是,我並沒有完全明白你想要達到的目標。 – Tariq
我希望這個456kb的單個文件能夠被許多映射器處理,而不是分割整個文件在每個服務器上被處理兩次的文件。所以我得到了兩個服務器應該不會發生的相同。 – mumbai
你在使用自定義的InputFormat/RecordReader嗎? – climbage