Map的结果,会通过partition分发到Reducer上。Reducer做完Reduce操作后,通过OutputFormat,进行输出。以下我们就来分析參与这个过程的类。 系统缺省的Partitioner是HashPartitioner。它以key的Hash值对Reducer的数目取模,得到相应的Reducer。 系统中定义了两个很easy的Reducer。IntSumReducer和LongSumReducer,分别用于对整形/长整型的value求和。 RecordWriter提供了write方法。用于输出<key, value>和close方法。用于关闭相应的输出。OutputCommitter提供了一系列方法。用户通过实现这些方法,能够定制OutputFormat生存期某些阶段须要的特殊操作。我们在TaskInputOutputContext中讨论过这些方法(明显。TaskInputOutputContext是OutputFormat和Reducer间的桥梁)。 FileOutputFormat还依赖于FileOutputCommitter。通过FileOutputCommitter提供一些和Job,Task相关的暂时文件管理功能。如FileOutputCommitter的setupJob。会在输出路径下创建一个名为_temporary的暂时文件夹,cleanupJob则会删除这个文件夹。 SequenceFileOutputFormat输出和TextOutputFormat输出分别相应输入的SequenceFileInputFormat和TextInputFormat,我们就不再具体分析啦。 很多其它精彩内容请关注:http://bbs.superwu.cn 关注超人学院微信二维码: 关注超人学院java免费学习交流群: |
相关文章
- 10-13[Hadoop] - TaskTracker源码分析(TaskTracker节点健康状况监控)
- 10-13Hadoop源码分析之NameNode的启动与停止(续)
- 10-13hadoop学习(四)Map/Reduce数据分析简述-示例-电话通讯清单
- 10-13Hadoop源码分析之NameNode的目录构成与类继承结构
- 10-13Hadoop源码分析之NameNode的格式化
- 10-13Hadoop源码分析之NameNode元数据的存储
- 10-13HADOOP源码分析之RPC(1)
- 10-13[Hadoop] - TaskTracker源码分析
- 10-13Hadoop 源码分析(二四)FSNamesystem
- 10-13Hadoop进入安全模式源码分析