2

我正在做一个项目,我想从 HBase 系统中读取数据。我读到有各种可用的 HBase 客户端,默认的 Java 客户端、Thrift、Avro 等。

现在我很困惑,如果我选择默认的 Java 客户端,那么我是否能够使用 thrift 客户端读取存储在 HBase 中的数据?

我想了解,如果我使用 thrift 客户端从 HBase 读取数据,那么它将使用 thrift 反序列化器将数据从二进制类型转换为适当的类型?如果这是真的,那么如果我使用 HBase 默认客户端读取,使用节俭客户端加载的数据将被损坏?

谢谢你的帮助!!~罗希特

4

1 回答 1

4

如果您使用 Java 开发 HBase 应用程序,我建议使用原始 HBase API - 它比 Thrift、REST、Avro 等更强大。

Java HBase API 通过 Zookeepers 直接与 HBase 数据库通信。

如果您使用 Java,那么您必须使用其他协议之一 - Thrift、REST、Avro 等。例如,Python 有一些用于 Thrift(我推荐 HappyBase)和 REST 的库。Ruby 和其他语言也是如此。

如果您使用 Java API(直接)插入数据,您将能够使用 Python 或 Ruby 上的 Thrift 检索完全相同的数据。您可能需要小心数据结构/格式(HBase 将所有内容都存储为字节),因此请小心存储字符串、整数、unicode 字符串等。

于 2013-02-14T21:30:00.293 回答