2
我在HDFS(〜20Gb)中有一個大文件,我通常在這個文件中執行MapReduce作業。大約有170個映射器被創建。使用的InputFormat
是FileInputFormat
。只對HDFS文件的一部分執行MapReduce作業
現在我只想在文件的一部分(例如文件的第一個40Mb)上執行MapReduce作業。
有沒有簡單的方法來執行此操作?
感謝您的幫助。
我在HDFS(〜20Gb)中有一個大文件,我通常在這個文件中執行MapReduce作業。大約有170個映射器被創建。使用的InputFormat
是FileInputFormat
。只對HDFS文件的一部分執行MapReduce作業
現在我只想在文件的一部分(例如文件的第一個40Mb)上執行MapReduce作業。
有沒有簡單的方法來執行此操作?
感謝您的幫助。
您好所有,
最後,我發現由推導FileInputFormat
類並覆蓋getSplits
方法,以獲得只有對應於HDFS文件的希望部分劈叉的解決方案。
在這種方法中,我調用超類來獲得由InputFileFormat
類生成的分割。感謝作業的配置,我設法得到一些信息,比如HDFS文件的開頭和我想讀的HDFS文件的結尾。最後,將從超類的getSPlits
方法獲得的所有分割的開始和結束與先前的信息進行比較,如果它們與HDFS文件的想要的部分匹配則返回。
請檢查內置的TextInputFormat,KeyValueInputFormat。我相信你正試圖重新發明輪子。 – KrazyGautam
嗨@KrazyGautam,TextInputFormat不是我所需要的,因爲我處理二進制文件。 – Cedekasme