2011-11-02 83 views
1

AFAK,Hadoop Streaming只支持文本輸入,這意味着數據按行組織。但是如果我們想要向後兼容,映射器代碼將變得混亂,在C++中編寫的同一個映射器程序中支持不同版本的日誌行。Hadoop Streaming的向後兼容性

我曾經考慮avro或protobuf,但它似乎不支持流模式,是這樣嗎?

是否還有其他解決方案?

回答

2

其他輸入/輸出格式也可以是used以及Hadoop Streaming。

Avro support已添加用於Hadoop Streaming。見AVRO-808 & AVRO-830。此Thread也許有用。

我找不到ProtoBuf的InputFormat和OutputFormat類。所以,他們需要定製created

2

僅供參考,hadoop streaming支持二進制輸入/輸出。

查找-io rawbytes選項。

我創建了一個能夠使用SequenceFile的原型(我認爲 - 很久以前)。

我放棄了這個想法,因爲我不得不從流中反序列化Java Hadoop * Writable。而C#BinaryReader 使用little-endian編碼,而Java使用big-endian。所以mapper變得更加複雜了。

無論如何,這是可能的。