我是hadoop的新手,我对map-reduce编程的风格越来越熟悉,但现在我遇到了一个问题:有时候我只需要映射一个工作而我只需要将地图结果直接作为输出,这意味着减少这里不需要阶段,我该如何实现?
Tho*_*lut 58
这会关闭减速机.
job.setNumReduceTasks(0);
Run Code Online (Sandbox Code Playgroud)
您还可以使用IdentityReducer:
http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapred/lib/IdentityReducer.html
当您只需要从终端使用映射器启动作业时,这会非常有用。您可以通过在 hadoop jar 命令中隐式指定 0 个减速器来关闭减速器:
-D mapred.reduce.tasks=0
Run Code Online (Sandbox Code Playgroud)
所以结果命令如下:
hadoop jar myJob.jar -D mapred.reduce.tasks=0 -input myInputDirs -output myOutputDir
Run Code Online (Sandbox Code Playgroud)
为了向后兼容,Hadoop 还支持“-reduce NONE”选项,相当于“-D mapred.reduce.tasks=0”。