【问题标题】:How to store complex objects into hadoop Hbase?如何将复杂对象存储到hadoop Hbase中?
【发布时间】:2010-11-03 11:45:49
【问题描述】:

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

要存储的示例对象的类:

class ComplexClass {

<simple fields>

List<AnotherComplexClassWithCollectionFields> collection;


}

【问题讨论】:

    标签: serialization hadoop hbase


    【解决方案1】:

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

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

    此外,Hadoop 社区中的人们还使用其他序列化框架,例如 Avro、Protocol Buffers 和 Thrift。所有这些都有其特定的用例,因此请进行研究。如果你正在做一些简单的事情,实现 Hadoop 的 Writable 应该就足够了。

    【讨论】:

    • 谢谢。您如何将字节数组转换回原始(可写)对象,这就是反序列化的样子?最好使用Hadoop的serde方法。
    • @bajafresh4life:你能帮我解决这个问题吗?我对 HBase 真的很陌生,并通过简单的步骤指导我。谢谢stackoverflow.com/questions/24236547/…
    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 2014-03-26
    • 1970-01-01
    相关资源
    最近更新 更多