質問

Hadoopに保存する必要があるコレクションフィールドの複雑なオブジェクトがあります。オブジェクトツリー全体を通過して、各フィールドを明示的に保存したくありません。それで、私は複雑なフィールドのシリアル化について考えて、それを1つの大きな作品として保存します。そして、オブジェクトを読むときにそれを望むよりも。それで、それをするための最良の方法は何ですか?私はそのために何らかの種類のシリリゼーションを使用することについてですが、Hadoopがこの状況に対処する手段があることを願っています。

保存するオブジェクトのクラスのサンプル:

class ComplexClass {

<simple fields>

List<AnotherComplexClassWithCollectionFields> collection;


}
役に立ちましたか?

解決

hbaseはバイト配列のみを扱うため、フィット感をどのようにしてオブジェクトをシリアル化できます。

シリアル化オブジェクトの標準のHadoop方法は、 org.apache.hadoop.io.Writable インターフェース。その後、オブジェクトを使用してバイト配列にシリアル化できます org.apache.hadoop.io.WritableUtils.toByteArray(Writable ... writable).

また、Avro、プロトコルバッファー、Thriftなど、Hadoopコミュニティの人々が使用する他のシリアル化フレームワークもあります。すべてが特定のユースケースを持っているので、あなたの研究もそうです。あなたが何か単純なことをしているなら、Hadoopの書き込みを実装するだけで十分です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top