3

我正在尝试在 python 中使用 hbase,并且我正在使用 cloudera 存储库来安装 hadoop/hbase 包。它似乎可以工作,因为我可以使用 shell 访问和处理数据库,但它不能在 python 中完全工作。

我知道要与 hbase 通信我需要 thrift,所以我从源代码下载并编译它,我可以将 thrift 导入 python,但是当我这样做时from hbase import Hbase,我得到 module not found 错误。

有谁知道我需要什么包/模块才能让它工作?我试图环顾easy_install 和yum(我正在使用centos6),但没有运气。我确实找到了一篇文章,其中使用 debain 的人通过这样做安装了它sudo aptiutde install python-hbase 我没有那个命令/包,所以我不确定如何获取它(或者我是否必须从源代码编译才能获取它)。

另外,如果有帮助,我从 cloudera 安装了大部分基础,并按照http://yannramin.com/2008/07/19/using-facebook-thrift-with-python的一些说明(不需要安装的说明)-和-hbase/

任何帮助/提示/建议都会很棒。

谢谢!

4

3 回答 3

3

看看 HappyBase(有关信息,请参阅https://github.com/wbolster/happybase)。这是从 Python 与 HBase 交互的现代方式。它涵盖了完整的 Thrift API,但将其包装在一个更好的界面中。

于 2013-01-25T23:30:54.890 回答
2

好吧,我想通了。如果将来有其他人遇到此问题,那实际上很容易。在您运行的步骤中thrift --gen py Hbase.thrift,它会在您运行该命令的位置创建一个 hbase 文件夹。只需使用该命令并将其复制到您的默认模块文件夹(或在您运行程序的文件夹中,它应该可以工作)。

于 2012-02-14T23:11:07.283 回答
0
  1. 在hadoop安装文件夹下搜索/src/contrib/thriftfs/gen-py
  2. 将 thrift --gen py Hbase.thrif 的输出复制到下面的位置(在您的情况下,/home/hadoop/data/ 之前的部分会有所不同)/home/hadoop/data/hadoop-1.0.4/src/contrib/thriftfs /gen-py

然后

$ python
import sys
sys.path.append("/home/hadoop/data/hadoop-1.0.4/src/contrib/thriftfs/gen-py")
import hbase 

它现在应该可以工作

于 2013-02-22T18:58:16.127 回答