hadoop - 配置Hadoop为每个 key 使用不同的Reducer流程?

标签 hadoop hadoop-streaming

关于我的问题,我有一个用Python编写的流式处理过程。

我注意到每个Reducer通过sys.stdin获取与多个键关联的所有值。

我希望sys.stdin仅具有与一个键关联的值。 Hadoop是否可能?我认为每个键都有一个不同的过程将是完美的,但是找不到能提供这种行为的配置。

有人可以在信息或代码方面为我提供帮助吗?

最佳答案

是的,如果您知道映射器将发出的键的总数。您可以将其设置为
job.setNUmReduceTasks(int n)

另外,可以在mapred-site.xml中定义将并行运行的reduces总数为:

mapred.tasktracker.reduce.tasks.maximum

这将加快还原过程。但是,每个reducer都作为jvm任务运行。因此,您的配置应该能够处理将产生的jvm数量

关于hadoop - 配置Hadoop为每个 key 使用不同的Reducer流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15884805/

相关文章:

hadoop - 如何使用map reduce输出作为另一个map reduce作业的输入?

r - 使用hadoop流运行R脚本作业失败:PipeMapRed.waitOutputThreads():子进程失败,代码为1

python-2.7 - 权限被拒绝错误 13 - Hadoop 上的 Python

hadoop - 启动 hadoop 流作业的替代方法

在 Windows 上使用 python 进行 Hadoop 流式传输

csv - Hive 查询 o/p 到 HDFS 作为 CSV 文件

hadoop - MapReduce Mrunit 错误

hadoop - Hadoop-使用PIG加载Hive表

sql - substring() 在配置单元中返回空白

python - 在 Hadoop 上运行 Python 代码失败