AFAK、Hadoop Streaming はテキスト入力のみをサポートします。つまり、データは行単位で編成されます。しかし、下位互換性が必要な場合は、マッパー コードが乱雑になり、c++ で記述された同じマッパー プログラムで異なるバージョンのログ行がサポートされます。
以前は avro や protobuf を検討していましたが、ストリーミング モードではサポートされていないようですが、本当ですか?
他に解決策はありますか?
参考までに、Hadoop ストリーミングはバイナリ入出力をサポートしています。
-io rawbytesオプションを探します。
SequenceFile を使用できるプロトタイプを作成しました (かなり前のことだと思います)。
ストリームから Java Hadoop *Writables を逆シリアル化する必要があったため、このアイデアを断念しました。また、C# BinaryReader はリトル エンディアン エンコーディングを使用しますが、Java はビッグ エンディアンを使用します。そのため、マッパーは本来あるべきより複雑になりました。
とにかく、それは可能です。