HBase不同的客户

时间:2013-02-13 12:16:29

标签: hbase thrift avro

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

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

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

感谢您的帮助! 〜罗希特夏尔

1 个答案:

答案 0 :(得分:3)

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

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

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

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