2013-04-23 90 views
1

我正在使用Python映射器在DSE 3.0群集(Hive 0.9)上进行Hive流处理。我的python脚本导入statsmodels模块,它需要Python 2.7。由于默认值不是2.7(它是2.4),我下载并安装它,以及statsmodels模块。使用Hive Streaming的Python 2.7模块

但是,在运行简单的蜂巢查询

hive> select transform (line) using 'python python-mapper.py' from docs; 

其中,“文档”是一个蜂巢表行字符串的时候。但是,我得到的错误:

File "python-mapper.py", line 6, in ? 
import statsmodels 
ImportError: No module named statsmodels 

所以我改变了我的蜂巢查询:

hive> select transform (line) using 'python2.7 python-mapper.py' from docs; 

调用2.7版。但后来我得到的错误

Caused by: java.io.IOException: Cannot run program "python2.7": 
      java.io.IOException: error=2, No such file or directory 

我也试过python27和/usr/local/bin/python2.7,我仍然得到相同的错误。有没有人遇到过这个?我已经引用了第On linux SUSE or RedHat, how do I load Python 2.7号帖子的第二个答案。任何建议将不胜感激!

感谢, AM

+0

您能否确认在所有工作器节点上安装了正确的python和库? – guyrt 2013-08-20 03:13:38

回答

2

我知道这是升技的老然而我遇到同样的问题,最近又传出,以为我会回答别人谁碰到这个问题来了。

如果您安装了多个版本的python,python2.7命令将不起作用。

有两种解决方法。一,使用python虚拟环境,它可以让你启动你的脚本并添加这个资源作为分布在你所有节点上的资源。二,你可以找出你python2.7库通过键入安装:

which python2.7 

然后引用位置在蜂巢查询像这样(例如):

select transform (line) using '/usr/local/bin/python2.7 python-mapper.py' from docs; 

注意每个节点都可以有一个不同的位置python2.7安装,所以检查之前。更好的是使用虚拟环境。

相关问题