1

我已经用这个教程安装了hadoop ,用这个安装了hbase,用这个安装hbase.thrift

现在我有一个给定的 python 脚本,用于创建一些 hbase 表。当我运行 py 文件时,它给了我错误:

Traceback (most recent call last):
  File "./createTables.py", line 9, in <module>
    from hbase import Hbase
ImportError: No module named hbase

这个问题似乎有同样的麻烦:How can I import hbase in python?

我尝试了那里给出的解决方案。我跑了

thrift --gen py Hbase.thrift

/usr/lib/hbase-0.94.2/src/main/resources/org/apache/hadoop/hbase/thrift文件夹中,它所在的Hbase.thrift位置。Ot 创建了子文件夹gen-py,如上述类似问题中链接的教程中所述。

现在,如果我得到“只需执行该命令并将其复制到您的默认模块文件夹(或在您运行程序的文件夹中,它应该可以工作)。” 作为给定解决方案的一部分,我转到给定 py 文件所在的文件夹(例如/home/kumo/Downloads/createTables.py)并运行

thrift --gen py /usr/lib/hbase-0.94.2/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift

...?但没有任何事情发生。将 Hbase.thrift 文件复制到 py 文件旁边的 Downloads 文件夹中,仅给出

[FAILURE:arguments:1] Could not open input file with realpath: ./Hbase.thrift

所以显然也没有帮助。

我也尝试添加

import sys
sys.path.append('/usr/lib/hbase-0.94.2/src/main/resources/org/apache/hadoop/hbase/thrift/gen-py')

再次给出相同的初始缺失模块错误。

我还尝试添加 5.c。通过在 .bashrc 中添加 python 路径来完成节俭教程的步骤:

export PYTHONPATH=$PYTHONPATH:/usr/lib/hbase-0.94.2/src/main/resources/org/apache/hadoop/hbase/thrift/gen-py

并没有真正起作用。

我对 path 感到厌烦/usr/local/hadoop/src/contrib/thriftfs/gen-py,因为那是另一个以某种方式弹出的 gen-py 文件夹,既作为 sys 导入又作为 pythonpath 导出,但它仍然给我同样的错误。

我对这一切还是新手,所以我只是一步一步地按照教程。我不知道我可能错过了什么或不在教程中。

谢谢你的帮助!

4

2 回答 2

2

不确定您的情况到底是什么问题,但我对HappyBase感到非常满意- 您可能想尝试一下。

于 2012-10-31T19:24:39.607 回答
1

解决方案似乎是 python 文件夹中指向生成的 gen-py 文件夹的链接。我将解压缩的 hbase 文件夹移动到家中自己的“软件”文件夹中,然后创建了链接:

cd /usr/local/lib/python2.7/dist-packages/
ln -s /home/kumo/software/hbase-0.94.2/src/main/resources/org/apache/hadoop/hbase/thrift/gen-py/hbase/

这个错误一切都很好。不确定,通过多个项目会发生什么。

于 2012-11-12T12:29:29.890 回答