1

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

以前は avro や protobuf を検討していましたが、ストリーミング モードではサポートされていないようですが、本当ですか?

他に解決策はありますか?

4

2 に答える 2

2

他の入出力形式も、Hadoop ストリーミングと共に使用できます。

Hadoop ストリーミングのAvroサポートが追加されました。AVRO-808 & AVRO-830を参照してください。また、このスレッドが役立つ場合があります。

ProtoBuf の InputFormat クラスと OutputFormat クラスが見つかりませんでした。そのため、カスタム作成する必要があります。

于 2011-11-02T18:05:13.800 に答える
2

参考までに、Hadoop ストリーミングはバイナリ入出力をサポートしています。

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

SequenceFile を使用できるプロトタイプを作成しました (かなり前のことだと思います)。

ストリームから Java Hadoop *Writables を逆シリアル化する必要があったため、このアイデアを断念しました。また、C# BinaryReader はリトル エンディアン エンコーディングを使用しますが、Java はビッグ エンディアンを使用します。そのため、マッパーは本来あるべきより複雑になりました。

とにかく、それは可能です。

于 2012-12-12T01:14:33.020 に答える