mapreduce流程中的几个关键点
MapReduce中数据流动
(1)最简单的过程: map - reduce
(2)定制了partitioner以将map的结果送往指定reducer的过程: map - partition - reduce
(3)增加了在本地先进性一次reduce(优化)过程: map - combin(本地reduce) - partition -reduce
map函数的处理结果放在内存中,这个内存也称为环形缓冲区,缓冲区达到80%的时候会形成溢写,一边向磁盘写入,一般接受map输出,具体流程是一个管道机制
map 数据 先写入缓冲区在内部排序,当达到一定的大小再写入磁盘。如果每次都要写入,那消耗太大,不实际。缓冲期的大小是调优的重要方面,当map中间结果很大,适当调大缓冲区
combiner流程再此之前
所有的map处理完成之后才会执行reduce吗?
答案:否,reduce会执行一个预处理,reduce预处理已经处理完毕的map节点 ,比如进行数据整理
等所有的数据过来 才开始真正的reduce计算
buffer缓冲区满了(80%)就往磁盘写的那个过程叫做溢写。
分区的目的是根据Key值决定Mapper的输出记录被送到哪一个Reducer上去处理。而分组的就比较好理解了。分组就是与记录的Key相关。在同一个分区里面,具有相同Key值的记录是属于同一个分组的。
对于一般的键,只需要key值相同,则对应的value就会分配至同一个 reduce中;
对于复合键,形式为TextPair<key1,key2>,通过控制 key1来进行分区,则具有相同的 key1的值会被划分至同一个分区中,但此时如果 key2不相同,则不同的key2会被划分至不同的分组
mapreduce流程中的几个关键点的更多相关文章
- Yarn源码分析之MapReduce作业中任务Task调度整体流程(一)
v2版本的MapReduce作业中,作业JOB_SETUP_COMPLETED事件的发生,即作业SETUP阶段完成事件,会触发作业由SETUP状态转换到RUNNING状态,而作业状态转换中涉及作业信息 ...
- mapreduce任务中Shuffle和排序的过程
mapreduce任务中Shuffle和排序的过程 流程分析: Map端: 1.每个输入分片会让一个map任务来处理,默认情况下,以HDFS的一个块的大小(默认为64M)为一个分片,当然我们也可以设置 ...
- hadoop-初学者写map-reduce程序中容易出现的问题 3
1.写hadoop的map-reduce程序之前所必须知道的基础知识: 1)hadoop map-reduce的自带的数据类型: Hadoop提供了如下内容的数据类型,这些数据类型都实现了Writab ...
- git 一般的开发流程中的代码管理
一般的开发流程中的代码管理 1. 从版本库中下载代码 git clone ssh://wenbin@192.168.1.3:29418/mustang-web 2. 针对某个feature(比如ins ...
- 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构) (转)
转自:http://blog.csdn.net/v_july_v/article/details/6704077 从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到 ...
- Java前辈:学习J2EE流程中的经验和教训
Java前辈:学习J2EE流程中的经验和教训 在这里我谈谈我在学习j2ee流程,并谈到在此过程中领会的经验和教训.以便后来者少走弯路. Java发展到现在,按应用来分主要分为三大块:J2SE,J2 ...
- UI产品设计流程中的14个要点
http://www.sj33.cn/digital/wyll/201404/38318.html 自从我在 Dribbble 上贴了一幅我的产品设计成果,受到了大家伙热烈的反馈,对此我深受鼓励,我决 ...
- matchmove流程中修改Maya相机数据的脚本
matchmove组的流程涉及到syntheyes与maya,nuke交接的问题.syntheyes会生成包含去畸变节点的nuke工程 和带跟踪信息的maya工程.在nuke工程上渲染得到去畸变的序列 ...
- Hadoop之MapReduce流程
hadoopMapReduce 1. MapReduce流程 2. Shuffle流程 1. MapReduce流程 MapReduce流程 切片: 对数据进行逻辑划分,默认大小是一个block块大小 ...
随机推荐
- Extjs中全键盘操作,回车跳到下一单元格
listeners: { afterRender: function (thisForm, options) { var els = Ext.DomQuery.select('input[type!= ...
- Ubuntu密码错误的问题
安装了一个Ubuntu,启动以后进入终端,想su root,提示输入密码,输入了很多次密码(我的用户密码和root密码是一样的),总是Login incorrect. 后来输入了用户名,提示输入密码, ...
- Oracle的AWR报告分析
* 定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告 ...
- web桌面程序之图标拖动排序的分析
在web桌面程序里,图标拖动并重新排序是个比较常见的功能.这个功能我之前反复修改了好几遍,现在终于整理出了比较理想的解决思路,决定拿出来分享下. 这一功能主要有哪些难点呢?我总结了一下一共有2处难点: ...
- Quill – 可以灵活自定义的开源的富文本编辑器
Quill 的建立是为了解决现有的所见即所得(WYSIWYG)的编辑器本身就是所见即所得(指不能再扩张)的问题.如果编辑器不正是你想要的方式,这是很难或不可能对其进行自定义以满足您的需求. Quill ...
- 经典案例:那些让人赞不绝口的创新 HTML5 网站
在过去的10年里,网页设计师使用 Flash.JavaScript 或其他复杂的软件和技术来创建网站.但现在你可以前所未有的快速.轻松地设计或创造互动的.有趣好看的网站.如何创建?答案是 HTML5 ...
- 移动端H5-第一课css篇
1.移动端开发视窗口的添加 h5端开发下面这段话是必须配置的 meta name="viewport" content="width=device-width, init ...
- web前端命名规范
在做web项目的时候,命名的规范是很重要.初学者一般急于求成对命名规范没有概念,觉得花时间这些还不如多看几遍框架.其实在我看来,一个良好的命名习惯是很重要的.下面就来介绍一下我总结的命名规范: (1) ...
- BP神经网络实现
# -*- coding: utf-8 -*- # -------------------------------------------------------------------------- ...
- ORACLE -- ArcSDE Lock request conflicts with an established lock【转】
具体的解决办法有如下三种 1.多半情况下关闭数据库连接可以解决这个问题,但有时候问题依然存在. 2. >1.关闭所有的ArcMap和ArcCatalog session. >2.开始——运 ...