我有一个快速的Hadoop Streaming问题。如果我正在使用Python流,并且我有Python包,我的mappers / redurs需要但默认情况下没有安装,我是否需要在所有Hadoop机器上安装它们,或者是否有某种序列化将它们发送到远程机器?
答案 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
但是,请参阅此问题以获取警告:
答案 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