一.概述
在http://zy19982004.iteye.com/blog/2037549的最后曾经提到过,这里再详细探讨一下。
二.job.setNumReduceTasks(0)唯一影响的是map结果的输出方式
当job.setNumReduceTasks(0)时,即没有reduce阶段,此时唯一影响的就是map结果的输出方式
- 如果有reduce阶段,map的结果被flush到硬盘,作为reduce的输入;reduce的结果将被OutputFormat的RecordWriter写到指定的地方(setOutputPath),作为整个程序的输出。
- 如果没有reduce阶段,map的结果将直接被OutputFormat的RecordWriter写到指定的地方(setOutputPath),作为整个程序的输出。
而OutputFormat可以是普通的FileOutputFormat等,也可以是一个空的OutputFormat如NullOutputFormat。
所以有无reduce和OutputFormat的多样性将组合出现以下情形(这个组合其实没什么意义,只是为了更加清楚而已)
- 有reduce
- reduce的结果不需要输出到文件,如reduce里直接将结果插入HBase,此时可以采用NullOutputFormat,当然就不需要setOutputPath。
- reduce的结果需要输出到文件,如采用FileOutputFormat,需要setOutputPath。
- 无reduce
- map的结果需要不输出到文件,如map里直接将结果插入HBase,此时可以采用NullOutputFormat,当然就不需要setOutputPath。
- map的结果需要输出到文件,如采用FileOutputFormat,需要setOutputPath。
三.总结
- 有无reduce决定map结果的输出方式。有reduce时reduce的结果作为整个程序的输出;无reduce时,map的结果作为整个程序的输出。如果能在map阶段解决的问题尽量不要丢给直接输出的reduce如IdentityReducer。
- 如NullOutputFormat层面上OutputFormat的不需要指定OutputPath;其他如FileOutputFormat需要指定,不然
Exception in thread "main" org.apache.hadoop.mapred.InvalidJobConfException: Output directory not set. at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:138)
相关推荐
Apache Hadoop十周岁:展望前方.pdf
hadoop-mapreduce-examples-2.7.1.jar
包mapreduce.lib.map的Hadoop源代码分析
【SpringBoot】Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster报错明细问题解决后记 报错明细 IDEA SpringBoot集成hadoop运行环境,,本地启动项目,GET请求接口触发...
Hadoop开发基础 : Google三大论文: MapReduce超大机群上的简单数据处理.doc Hadoop开发基础 : Google三大论文: MapReduce超大机群上的简单数据处理.doc Hadoop开发基础 : Google三大论文: MapReduce超大机群上的简单...
Hadoop专业解决方案-第3章:MapReduce处理数据.docx
包mapreduce.lib.input的Hadoop源代码分析
(1)熟悉Hadoop开发包 (2)编写MepReduce程序 (3)调试和运行MepReduce程序 (4)完成上课老师演示的内容 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 Jdk1.8 二、实验内容 1.单词计数实验...
org.apache.hadoop.mapreduce.lib.jobcontrol org.apache.hadoop.mapreduce.lib.join org.apache.hadoop.mapreduce.lib.map org.apache.hadoop.mapreduce.lib.output org.apache.hadoop.mapreduce.lib.partition...
Hadoop深入浅出之MapReduce介绍.pptx
本文介绍了用Java编写并运行第一个mapreduce作业的步骤及遇到的问题和解决方案。
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1296) at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1293) at java.security.AccessController.doPrivileged(Native Method) at javax....
Flink-1.11.2与Hadoop3集成JAR包,放到flink安装包的lib目录下,可以避免Caused by: org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Hadoop is not in the classpath/dependencies.这个报错,实现...
包org.apache.hadoop.mapreduce的Hadoop源代码分析
hadoop-mapreduce-examples-2.6.5.jar 官方案例源码
Packtpub.Hadoop.MapReduce.Cookbook.Jan.2013,最新出版的hadoop的书。
hadoop-annotations-3.1.1.jar hadoop-common-3.1.1.jar hadoop-mapreduce-client-core-3.1.1.jar hadoop-yarn-api-3.1.1.jar hadoop-auth-3.1.1.jar hadoop-hdfs-3.1.1.jar hadoop-mapreduce-client-hs-3.1.1.jar ...
Hadoop MapReduce教程.pdf
林子雨大数据原理与技术第三版实验5实验报告 大数据技术与原理实验报告 MapReduce 初级编程实践 姓名: 实验环境: 操作系统:Linux(建议Ubuntu16.04); Hadoop版本:3.2.2; 实验内容与完成情况: (一)...
Explore the Hadoop MapReduce v2 ecosystem to gain insights from very large datasets About This Book Process large and complex datasets using next generation Hadoop Install, configure, and administer ...