0

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

4

2 回答 2

2

如果它们没有安装在您的任务箱上,您可以使用 -file 发送它们。如果您需要一个包或其他目录结构,您可以发送一个 zipfile,它将为您解压。这是一个 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

于 2010-05-19T22:44:17.430 回答
1

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

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

于 2012-03-15T20:56:26.190 回答