我正在管理多個用戶之間共享的Hadoop集羣。我們經常以非常緩慢的映射器運行作業。例如,我們可能有一個32 GB的句子文件(每行一句),我們想要NLP解析(這需要每句100毫秒)。如果塊大小爲128 MB,則爲250個映射器。這填補了我們相當小的集羣(每個節點有9個節點時間12個映射器是108個映射器),但每個映射器需要很長時間才能完成(小時)。Hadoop作業調度與緩存映射器中的作業一起在0.20.203
問題是,如果羣集爲空並且啓動了這樣的作業,它將使用羣集上的所有映射器。然後,如果其他人想要做一個短期工作,它會被封鎖幾個小時。我知道更新版本的Hadoop支持Fair Scheduler(我們正在使用容量調度程序)搶佔,但新版本也不穩定(我急於等待下一個版本)。
曾經有specifying the number of mappers的選項,但現在JobConf已被棄用(奇怪的是,它是not deprecated in 0.20.205)。這可以緩解這個問題,因爲使用更多映射器時,每個映射任務可以在較小的數據集上工作,從而更快完成。
0.20.203有什麼辦法解決這個問題嗎?我是否需要繼承我的InputFormat(在這種情況下是TextInputFormat)?如果是這樣,我需要指定什麼?
的說明操作即可,但這並不是我想要* more * mappers,所以mappers可以更快完成。 – schmmd
鏈接到[關於在HDFS中更改文件的塊大小的問題](http://stackoverflow.com/questions/2669800/changing-the-block-size-of-a-dfs-file-in-hadoop)到支持你的答案。 – schmmd
@ jayunit100 - 你可以指向指向map.input.length配置參數的Apache文檔。我沒有找到它。 –