複雑なオブジェクトをHadoop hbaseに保存する方法は?
-
28-09-2019 - |
質問
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の書き込みを実装するだけで十分です。
所属していません StackOverflow