如何将参数传递给python Hadoop流媒体作业?

zzz*_*mbo 9 python hadoop hadoop-streaming

对于python Hadoop流作业,如何将参数传递给例如reducer脚本,以便根据传入的参数使其行为不同?

我知道流媒体作业的格式为:

hadoop jar hadoop-streaming.jar -input -output -mapper mapper.py -reducer reducer.py ...

我想影响reducer.py.

Ray*_*oal 16

命令行选项的参数-reducer可以是任何命令,因此您可以尝试:

$HADOOP_HOME/bin/hadoop  jar $HADOOP_HOME/hadoop-streaming.jar \
    -input inputDirs \
    -output outputDir \
    -mapper myMapper.py \
    -reducer 'myReducer.py 1 2 3' \
    -file myMapper.py \
    -file myReducer.py
Run Code Online (Sandbox Code Playgroud)

假设myReducer.py是可执行的.免责声明:我还没有尝试过,但我已经通过了类似的复杂的字符串-mapper-reducer前.

那就是说,你试过吗?

-cmdenv name=value
Run Code Online (Sandbox Code Playgroud)

选项,让你的Python reducer从环境中获得价值?这只是另一种做事的方式.