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

发布于 2024-09-30 22:24:07 字数 306 浏览 2 评论 0原文

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

要存储的示例对象的类:

class ComplexClass {

<simple fields>

List<AnotherComplexClassWithCollectionFields> collection;


}

I have complex objects with collection fields which needed to be stored to Hadoop. I don't want to go through whole object tree and explicitly store each field. So I just think about serialization of complex fields and store it as one big piece. And than desirialize it when reading object. So what is the best way to do it? I though about using some kind serilization for that but I hope that Hadoop has means to handle this situation.

Sample object's class to store:

class ComplexClass {

<simple fields>

List<AnotherComplexClassWithCollectionFields> collection;


}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野味少女 2024-10-07 22:24:07

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

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

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

HBase only deals with byte arrays, so you can serialize your object in any way you see fit.

The standard Hadoop way of serializing objects is to implement the org.apache.hadoop.io.Writable interface. Then you can serialize your object into a byte array using org.apache.hadoop.io.WritableUtils.toByteArray(Writable ... writable).

Also, there are other serialization frameworks that people in the Hadoop community use, like Avro, Protocol Buffers, and Thrift. All have their specific use cases, so do your research. If you're doing something simple, implementing Hadoop's Writable should be good enough.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文