2017-03-27 73 views
2

我在HDFS(〜20Gb)中有一個大文件,我通常在這個文件中執行MapReduce作業。大約有170個映射器被創建。使用的InputFormatFileInputFormat只對HDFS文件的一部分執行MapReduce作業

現在我只想在文件的一部分(例如文件的第一個40Mb)上執行MapReduce作業。

有沒有簡單的方法來執行此操作?

感謝您的幫助。

回答

0

您好所有,

最後,我發現由推導FileInputFormat類並覆蓋getSplits方法,以獲得只有對應於HDFS文件的希望部分劈叉的解決方案。

在這種方法中,我調用超類來獲得由InputFileFormat類生成的分割。感謝作業的配置,我設法得到一些信息,比如HDFS文件的開頭和我想讀的HDFS文件的結尾。最後,將從超類的getSPlits方法獲得的所有分割的開始和結束與先前的信息進行比較,如果它們與HDFS文件的想要的部分匹配則返回。

+0

請檢查內置的TextInputFormat,KeyValueInputFormat。我相信你正試圖重新發明輪子。 – KrazyGautam

+0

嗨@KrazyGautam,TextInputFormat不是我所需要的,因爲我處理二進制文件。 – Cedekasme

相關問題