Hadoop源码分析(mapreduce.lib.partition/reduce/output)
|
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免费学习交流群: |
Hadoop源码分析(mapreduce.lib.partition/reduce/output)的更多相关文章
- Hadoop源码分析之数据节点的握手,注册,上报数据块和心跳
转自:http://www.it165.net/admin/html/201402/2382.html 在上一篇文章Hadoop源码分析之DataNode的启动与停止中分析了DataNode节点的启动 ...
- Hadoop源码分析之Configuration
转自:http://www.it165.net/admin/html/201312/2178.html org.apache.hadoop.conf.Configuration类是Hadoop所有功能 ...
- hadoop自带例子SecondarySort源码分析MapReduce原理
这里分析MapReduce原理并没用WordCount,目前没用过hadoop也没接触过大数据,感觉,只是感觉,在项目中,如果真的用到了MapReduce那待排序的肯定会更加实用. 先贴上源码 pac ...
- hadoop源码分析(2):Map-Reduce的过程解析
一.客户端 Map-Reduce的过程首先是由客户端提交一个任务开始的. 提交任务主要是通过JobClient.runJob(JobConf)静态函数实现的: public static Runnin ...
- hadoop源码分析
hadoop 源代码分析(一) Google 的核心竞争技术是它的计算平台.HadoopGoogle的大牛们用了下面5篇文章,介绍了它们的计算设施. GoogleCluster:http://rese ...
- Hadoop源码分析之产生InputSplit文件过程
用户提交 MapReduce 作业后,JobClient 会调用 InputFormat 的 getSplit方法 生成 InputSplit 的信息. 一个 MapReduce 任务 ...
- Hadoop源码分析(3): Hadoop的运行痕迹
在使用hadoop的时候,可能遇到各种各样的问题,然而由于hadoop的运行机制比较复杂,因而出现了问题的时候比较难于发现问题. 本文欲通过某种方式跟踪Hadoop的运行痕迹,方便出现问题的时候可以通 ...
- Hadoop源码分析之FileSystem抽象文件系统
Hadopo提供了一个抽象的文件系统模型FileSystem,HDFS是其中的一个实现. FileSystem是Hadoop中所有文件系统的抽象父类,它定义了文件系统所具有的基本特征和基本操作. Fi ...
- HADOOP源码分析之RPC(1)
源码位于Hadoop-common ipc包下 abstract class Server 构造Server protected Server(String bindAddress, int port ...
随机推荐
- task16 表格增减笔记
trim()方法会创建一个字符串副本,删除前置及后缀所有空格,然后返回结果(中间的空格符无法消除) match()方法可在字符串内检索指定的值,找到一个或多个正则表达式的匹配 正则表达式 匹配中文:[ ...
- ifconfig命令无法找到,提示bash: ifconfig: command not found
问题就是题目那样,具体解决方法截图如下: 分析问题 1.whereis ifconfig 看一下这个命令在哪个目录下 2.echo $PATH 看一下该目录是否在路经下,注意lunux下是完全区分大小 ...
- hibernate、java、数据库对应类型
引自 https://my.oschina.net/heau/blog/498874 java.数据库对应类型 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述 ...
- Qt中常用知识点
1:QRegExp 正则表达式 QRegExp regExp("[a-zA-Z][1-9][0-9]{0,2}"); xxx->setValidator(new QRegEx ...
- Ubuntu-16.04-Desktop +Hadoop2.7.5+Eclipse-Neon的云计算开发环境的搭建(伪分布式方式)
主控终端 主机名 ubuntuhadoop.smartmap.com IP 192.168.1.60 Subnet mask 255.255.255.0 Gateway 192.168.1.1 DNS ...
- 记一次Android studio升级之后的坑
像往常一样打开Android studio,但这次它提示我升级!说是什么为了更好的体验,在好奇心的驱使下,我毅然地点击了“update”按钮.升级之后,编译项目,报出了N多个error,我的心都慌完! ...
- Vue2学习笔记:v-show指令
v-show指令:v-show="true/false" 控制元素显示/隐藏 1.使用 <!DOCTYPE html> <html> <head> ...
- IHttpActionResult不识别解决办法
使用ASP.NET Web API构造基于restful风格web services,IHttpActionResult是一个很好的http结果返回接口.然而发现在vs2012开发环境中,System ...
- Flask的错误日志处理和|ORM操作
flask有个很人性化的处理就是 你的错误的输出是可以通过错误日志来自定义 ,让你输入的错误不再是“大黄页”, 通过 errorhandler()来装饰函数之后你的所有的输入错误的函数你都会进入这个 ...
- Redis学习---Redis操作之有序集合
有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序. zadd(name, *args, **kw ...