gpt4 book ai didi

python - 在Python中执行多个mapreduce作业

转载 作者:行者123 更新时间:2023-12-02 21:37:07 27 4
gpt4 key购买 nike

我目前正在编写在Python的hadoop流上运行的代码。但是,我正在尝试做一个映射和两个简化工作。

当我尝试使用以下命令运行代码时,只有一个reducer(第一个reducer)正在运行。

我正在使用此命令:

hadoop jar /usr/hdp/2.2.0.0-2041/hadoop-mapreduce/hadoop-streaming.jar -Dmapreduce.job.queuename=user -Dmapreduce.map.memory.mb=4096 -Dmapreduce.map.java.opts=-Xmx3276m -Dmapred.output.compress=false -file mapper.py -file reducer_tf_hcuot.py -mapper mapper.py -reducer reducer_tf_hcuot.py -input text -output o_text

你能告诉我如何工作吗?

最佳答案

在hadoop流中,一次(当前)一次只能运行1个映射和1个 reduce task 。

通过将第一个映射函数的输出传递到第二个映射函数,您基本上可以在一个作业中运行2个映射器(或任意数量的映射器)。

hadoop jar $HADOOP_JAR -mapper 'map1.py | map2.py | map3.py' -reducer 'reduce.py' ...

但是,对于多个reducer,如Ned Rockson所说,通过在第二个作业中使用Identity Mapper,您将拥有2个独立的作业
hadoop jar $HADOOP_JAR -mapper 'map.py' -reducer 'reduce1.py' ...
hadoop jar $HADOOP_JAR -mapper '/bin/cat' -reducer 'reduce2.py' ...

关于python - 在Python中执行多个mapreduce作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31409477/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com