繁体   English   中英

如何将复杂对象存储到hadoop Hbase中?

[英]How to store complex objects into hadoop Hbase?

我有复杂的对象,收集字段需要存储到Hadoop。 我不想遍历整个对象树并明确存储每个字段。 所以我只考虑复杂字段的序列化并将其存储为一个大块。 而不是在阅读对象时绝望。 那么最好的方法是什么? 我虽然为此使用了某种类型的血清,但我希望Hadoop有办法处理这种情况。

要存储的示例对象的类:

class ComplexClass {

<simple fields>

List<AnotherComplexClassWithCollectionFields> collection;


}

HBase只处理字节数组,因此您可以以任何您认为合适的方式序列化对象。

序列化对象的标准Hadoop方法是实现org.apache.hadoop.io.Writable接口。 然后,您可以使用org.apache.hadoop.io.WritableUtils.toByteArray(Writable ... writable)将对象序列化为字节数组。

此外,Hadoop社区中的人们还使用其他序列化框架,如Avro,Protocol Buffers和Thrift。 所有都有他们的具体用例,你的研究也是如此。 如果你做的很简单,那么实现Hadoop的Writable应该足够好了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM