2014-01-14 58 views
0

我正在通過Hadoop開發一個對我來說比較新的程序,所以我將非常感謝您爲我打算構建的概念提供建議。Hadoop:爲映射分組文件

我有一個大的有序的1 ... n圖像集。圖像在邏輯上被分成幾個組,每個組可以獨立處理。但是,在一個組內,所有的圖像都是依賴的,因此應該由一個Map任務處理。圖像本身很小,因此將它們同時加載到內存中應該沒有問題。

我想將每個組打包到一個單獨的SequenceFile中,但似乎沒有辦法從InputStream讀取SequenceFile ...或者,也許有辦法以某種方式爲單個MapReduce分配M個不同的節點這樣每個節點都會直接從HDFS讀取SeqFile?

回答

0

我正在通過將圖像編碼爲帶有base64的字符串解決類似問題,然後將它們全部放入預處理階段的JSON對象的數組字段中。此外,如果您將JSON存儲爲AVRO格式,則您的映射器中的對象將受益於out-of-the-box object-oriented interface

0

您可能需要查看CombineFileInputFormat,這可以幫助您根據PathFilter對輸入進行分組,例如文件夾智能分組。並且每個組可以被構造爲單個Split,其將由單個地圖任務處理。由於Map任務數量=分割數量。

您的需求似乎與this link類似。請檢查。