HBase不同的客户端

HBase不同的客户端,hbase,thrift,avro,Hbase,Thrift,Avro,我正在从事一个项目,希望从HBase系统读取数据。我了解到有各种可用的HBase客户端,默认的Java客户端、Thrift、Avro等 现在我很困惑,如果我选择默认的Java客户端,那么我是否能够使用thrift客户端读取存储在HBase中的数据 我想了解,如果我使用thrift客户端从HBase读取数据,那么它将使用thrift反序列化程序将数据从二进制类型转换为适当的类型?如果这是真的,那么如果我使用HBase默认客户端读取数据,那么使用thrift客户端加载的数据将被损坏 谢谢你的帮助!!

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

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

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

谢谢你的帮助!!
~Rohit

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

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

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


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

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

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

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


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

Guyz如果您对理解问题有任何疑问,请告诉我。Guyz如果您对理解问题有任何疑问,请告诉我。谢谢Suman。这真的很有帮助!!所以我要说清楚,确保我正确理解你。Thrift客户端接口不使用Thrift序列化/反序列化,它使用与HBase Java客户端相同的序列化和反序列化机制?继续我的最后一个问题,当我尝试插入一个int,然后将其转换为二进制时,甚至HBase命令行客户端也将使用完全相同的序列化机制?啊,这是一个有趣的问题-我还没有玩过序列化部分?你是只插入整数/字符串还是完整对象?我建议尝试一下,看看-这就是我如何找到写入/读取整数、字符串、unicode等的最佳方法。一般来说,如果你向HBase写入内容,你将得到与输出完全相同的内容。嗯,我将尝试播放,看看会发生什么。无论如何,我只是在寻找原始java类型、字符串、int等等。再次感谢!谢谢苏曼。这真的很有帮助!!所以我要说清楚,确保我正确理解你。Thrift客户端接口不使用Thrift序列化/反序列化,它使用与HBase Java客户端相同的序列化和反序列化机制?继续我的最后一个问题,当我尝试插入一个int,然后将其转换为二进制时,甚至HBase命令行客户端也将使用完全相同的序列化机制?啊,这是一个有趣的问题-我还没有玩过序列化部分?你是只插入整数/字符串还是完整对象?我建议尝试一下,看看-这就是我如何找到写入/读取整数、字符串、unicode等的最佳方法。一般来说,如果你向HBase写入内容,你将得到与输出完全相同的内容。嗯,我将尝试播放,看看会发生什么。无论如何,我只是在寻找原始java类型、字符串、int等等。再次感谢!