2010-05-19 163 views
0

我有一个快速的Hadoop Streaming问题。如果我正在使用Python流,并且我有我的映射器/减速器需要但未默认安装的Python包,我是否还需要在所有Hadoop机器上安装这些包,或者是否有某种序列化将它们发送到远程机器?使用Hadoop Streaming管理依赖关系?

+0

氏问题展示了如何在每个节点上导入nltk。 http://stackoverflow.com/questions/6811549/how-can-i-include-a-python-package-with-hadoop-streaming-job/6811775#6811775 – viper 2013-11-04 18:08:47

回答

2

如果它们未安装在任务框中,可以使用-file发送它们。如果你需要一个包或其他目录结构,你可以发送一个zip文件,它将被解压缩。这里有一个Haddop 0.17调用:

$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-0.17.0-streaming.jar -mapper mapper.py -reducer reducer.py -input input/foo -output output -file /tmp/foo.py -file /tmp/lib.zip 

但是,看到这个问题的一个警告:

https://issues.apache.org/jira/browse/MAPREDUCE-596