如何在Python中导入HBase?

3 投票
3 回答
6405 浏览
提问于 2025-04-17 13:01

我正在尝试在Python中使用HBase,并且我使用Cloudera的仓库来安装Hadoop和HBase的包。看起来一切正常,因为我可以通过命令行访问和操作数据库,但在Python中却没有完全成功。

我知道要和HBase通信需要用到Thrift,所以我从源代码下载并编译了它。我可以在Python中导入Thrift,但当我执行from hbase import Hbase时,却出现了找不到模块的错误。

有没有人知道我需要什么包或模块才能让它工作?我尝试过使用easy_install和yum(我在用CentOS 6),但都没有找到。我看到一篇文章,里面有个人在Debian上通过执行sudo apt-get install python-hbase安装了它,但我没有这个命令或包,所以不确定该怎么获取它(或者是否需要从源代码编译)。

另外,如果有帮助的话,我大部分基础都是从Cloudera安装的,并且按照一些不需要安装的说明进行了操作,具体可以参考http://yannramin.com/2008/07/19/using-facebook-thrift-with-python-and-hbase/

任何帮助、建议或提示都非常感谢。

谢谢!

3 个回答

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 

现在应该可以正常工作了。

3

看看HappyBase吧(详细信息请查看https://github.com/wbolster/happybase)。它是用Python与HBase进行交互的现代方式。它包含了完整的Thrift API,但用一种更好用的界面进行了封装。

2

好的,我搞明白了。如果以后还有人遇到这个问题,其实解决起来很简单。在你运行 thrift --gen py Hbase.thrift 这条命令的时候,它会在你运行命令的地方创建一个 hbase 文件夹。你只需要把这个命令生成的文件夹复制到你的默认模块文件夹里(或者你运行程序的文件夹),这样就可以正常工作了。

撰写回答