2011-11-02 22 views
1

AFAK、Hadoop Streamingはテキスト入力のみをサポートします。つまり、データは行単位で整理されます。 C++で書かれた同じマッパープログラムで、異なるバージョンのログ行をサポートしている場合、下位互換性が必要な場合は、マッパーコードが乱雑になります。Hadoop Streamingの下位互換性

私はavroまたはprotobufを使用していましたが、ストリーミングモードではサポートされていないようですが、それは本当ですか?

その他の解決策はありますか?

答えて

2

その他の入出力形式は、usedとHadoop Streamingでもかまいません。

Hadoop Streaming用にAvro supportが追加されました。 AVRO-808 & AVRO-830を参照してください。このThreadも便利です。

ProtoBufのInputFormatクラスとOutputFormatクラスが見つかりませんでした。したがって、彼らはカスタムcreatedである必要があります。

2

ちょうど情報として、hadoopストリーミングはバイナリ入出力をサポートしています。

-io rawbytesオプションを探します。

私はSequenceFileを使用することができたプロトタイプを作成しました(これはずっと前です)。

アイデアを放棄したのは、ストリームからJava Hadoop * Writablesを非直列化しなければならなかったからです。 C#BinaryReader はリトルエンディアンエンコーディングを使用し、Javaはビッグエンディアンを使用します。だから、マッパはもっと複雑になっていたはずです。

とにかく可能です。