2011-06-01 52 views
3

我需要HBase來存儲大量索引關鍵字和值(目前使用Redis),但我找不到任何C庫來連接,寫入或讀取HBase。HBase有沒有C庫?

我谷歌搜索,但沒有發現任何東西。有人有想法嗎?或者是否有任何類似的Hadoop相關數據庫擁有成熟的C庫?

+1

如果您可以使用C++,那麼HBase有一個用於生成C++代碼來與HBase通信的文件。我使用它與C#。 http://thrift.apache.org – Nija 2011-06-07 21:09:30

回答

1

有幾個問題需要考慮:

  • Thrift

  • Avro是尋找到另一種新的選擇。

  • 您可以使用普通的REST API調用使用Stargate

有關於c和C++客戶端的HBase錯誤跟蹤器HBase-1015的討論。

看看上面的選項,看看什麼最適合您的要求。

構建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

+1

這與HBase無關......你提出了一個HDFS客戶端。我不明白爲什麼這個答覆被其他有效的答覆接受了。 – 2012-10-24 15:31:24

+0

答案的libhdfs部分迴應「或者是否有任何類似的Hadoop相關的數據庫,它有成熟的C庫?」問題的一部分,我會澄清那部分答案。 – codingFoo 2012-10-24 17:13:28

+0

正如Nija所評論的,Thrift是非jvm客戶端連接到hbase的最佳方式,這回答了問題的第一部分。 – codingFoo 2012-10-24 17:37:14

0

您可以使用Thrift作爲網關與HBase的連接。

1

注意,由Chip特納開發的C++ HBase的客戶端通過節儉實際上去(在至少目前的代碼)。因此,您將C++ API轉換爲Thrift API,並轉換爲Java API。其中一個好處似乎在於C++ API試圖嚴密盯住原始的Java API。

1

HBase的本地API libhbase與libhdfs類似,可用here

您還可以從here的HBase 0.98.x下載CentOS/RedHat和Ubuntu的預建包。

+0

儘管此鏈接可能回答這個問題,但最好在此包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – Kmeixner 2015-06-04 15:29:29

+0

感謝您的建議。我會很快更詳細地更新答案。 – 2015-06-04 16:32:08