【问题标题】:Is there any C library for HBase? [closed]HBase 是否有任何 C 库? [关闭]
【发布时间】:2011-06-01 13:13:02
【问题描述】:

我需要 HBase 来存储大量的索引关键字和值(目前使用 Redis),但我找不到任何 C 库来连接、写入或读取 HBase。

我用谷歌搜索了,但什么也没找到。有人有想法吗?或者有没有类似的具有成熟C库的Hadoop相关数据库?

【问题讨论】:

  • 如果你可以使用 C++ 有一个 HBase 有一个文件用于生成 C++ 代码与 HBase 通信的 thrift 库。我将它与 C# 一起使用。 thrift.apache.org

标签: hbase


【解决方案1】:

我不知道纯C HBase客户端,但是好像有C++客户端:

https://github.com/apache/hbase/tree/master/hbase-native-client

【讨论】:

  • 链接已损坏。可以更新一下链接吗?
  • 链接已更新。
【解决方案2】:

有几个选项可以考虑:

  • Thrift

  • Avro 是另一个值得研究的新选项。

  • 您可以通过 Stargate 使用普通的 REST api 调用。

在 HBase 错误跟踪器HBase-1015 上有一个关于 c 和 c++ 客户端的讨论。

查看以上选项,了解最符合您要求的选项。

hbase 在其上构建的 HDFS 是一个类似的 Hadoop 相关数据库,具有 C 库。

libhdfs 是一个基于 c 的库,用于访问 hdfs。它是使用 jni 创建的。

http://wiki.apache.org/hadoop/LibHDFS

http://hadoop.apache.org/common/docs/current/libhdfs.html

这是一个示例项目:

https://github.com/kzk/libhdfs-example

【讨论】:

  • 这与 HBase 无关...您向 HDFS 提出了客户端。我不明白为什么这个响应比其他有效响应更被接受。
  • 答案的 libhdfs 部分响应“或者是否有任何类似的具有成熟 C 库的 Hadoop 相关数据库?”问题的一部分,我将澄清答案的那部分。
  • 正如 Nija 评论的那样,Thrift 是目前非 jvm 客户端连接到 hbase 的最佳方式,这回答了问题的第一部分。
【解决方案3】:

请注意,Chip Turner 开发的 C++ Hbase 客户端实际上是通过 Thrift(至少当前代码是这样)。所以你有一个 C++ API 被翻译成 Thrift API,被翻译成 Java API。一个优势似乎是 C++ API 正试图与原始 Java API 保持密切联系。

【讨论】:

    【解决方案4】:

    HBase 的本机 API,libhbase,类似于 libhdfs 可用 here

    您还可以从here 下载适用于 HBase 0.98.x 的 CentOS/RedHat 和 Ubuntu 的预构建包。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    • 感谢您的建议。我会尽快更新更详细的答案。
    【解决方案5】:

    您可以使用Thrift作为网关连接HBase。

    【讨论】:

      猜你喜欢
      • 2011-02-25
      • 2017-06-05
      • 2013-12-11
      • 1970-01-01
      • 2013-11-16
      • 2011-02-09
      • 1970-01-01
      • 2010-12-28
      相关资源
      最近更新 更多