使用Hadoop Streaming管理依赖项?

时间:2010-05-19 01:46:32

标签: python hadoop mapreduce hadoop-streaming

我有一个快速的Hadoop Streaming问题。如果我正在使用Python流,并且我有Python包,我的mappers / redurs需要但默认情况下没有安装,我是否需要在所有Hadoop机器上安装它们,或者是否有某种序列化将它们发送到远程机器?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

如果你使用Dumbo,你可以使用-libegg来分发egg文件并自动配置Python运行时:

https://github.com/klbostee/dumbo/wiki/Short-tutorial#wiki-eggs_and_jars https://github.com/klbostee/dumbo/wiki/Configuration-files