hadoop2.5.2学习06--MapReduce原理及操作2

来源:互联网 发布:jquery.countdown.js 编辑:程序博客网 时间:2024/05/06 05:52

主从机构

  • 主:jobtracker
  • 从:tasktracker

MapReduce四个阶段:

1、 Split

  • 数据上传到hdfs上以block的形式存在, 作为Split的数据,例如:wordcount按照行分割,将每行数据作为一个任务,交给map处理;

2、 Mapper:key-value(对象)

  • Split拆分的数据交给map,按照键值对形式, 如wordcount,每行数据的第一个字母的序号作为key,每行数据作为value,交由map处理。输出得到的也是键值对形式。

3、 Shuffle

  • a) 分区(partition,HashPartition:根据key的hashcode值 和 Reduce的数量 模运算),可以自定义分区,运算速度要快。一定要解决数据倾斜和reduce的负载均衡。
  • b) 排序:默认按照字典排序。WriterCompartor(比较)
  • c) 合并:减少当前mapper输出数据,根据key相同(比较),把 value 进行合并。
  • d) 分组(key相同(比较),value组成一个集合)(merge)

4、 Reduce

  • a) 输入数据:key + 迭代器

1、下图为MapReduce的计算架构

map输出的数据,经过shuffle(洗牌), 形成键相同的一系列值, 作为reduce的输入
这里写图片描述

2、wordcount的计算流程

这里写图片描述

3、Mapper

 Map-Reduce的思想就是“分而智之”

  • Mapper负责“分”, 把复杂的任务分解成若干个 “简单的任务”执行

 “简单任务”有几个含义:

  • 数据或计算规模较原任务要大大缩小
  • 就近计算,即会分配到存放了所需数据的节点进行计算,移动计算,而不是移动数据
  • 这些小任务之间没有以来关系,可以并行计算

3、Shuffler

  • 在mapper和reducer中间的一个步骤,包含4个过程:分区,排序,合并,分组,
  • 可以见mapper的输出按照某种key值重新切分,和组合;把key值符合某种范围的输出到特定的reduce那里处理。
  • 可以简化reduce的过程

下图为shuffler的详细流程图

这里写图片描述

  • shuffler为map输出到reduce输入
  • map部分的shuffler:
    首先map输出的数据首先存在内存中, 由于内存有限, 但达到一定阈值,数据即将溢出, 将数据写到磁盘中, 但是,在这之前, 首先要进行partition(使每个map输出的键值对都有一个分区号,将交由对应的reduce处理), sort(默认情况,对键进行字典排序), 然后spill to disk , 写到磁盘中,形成临时文件,当map task执行完了, shuffler会将所有的临时文件合并(merge),

  • reduce部分的shuffler:
    从各个map经由shuffle得到的数据(磁盘中合并后的文件),fetch(抓取)该reduce对应的分区的数据,优先放在内存中, 但是也会有溢写,需要再次进行排序,这个shuffle过程进行了两次排,font>排序之后进行分组,每组交由一个reduce处理。至此shuffler结束。

4、MapReduce的Split大小

  • max.split(100M)
  • min.split(10M)
  • block(hadoop1.x中为64M, 2.0中为128M)
  • 三者决定Split的大小:max(min.split, min(block, max.split))
    根据上面的公式可知:要么是一个碎片段就是一个block, 要么一个block被拆分成多个碎片段。
    不可能出现一个碎片段由多个block组成:

    • 如果这两个block不在同一台机器上,就需要进行数据的拷贝。这违背了mapreduce的理念:移动计算而不移动数据

    hadoop1.x与hadoop2x中的MapReduce区别:

    hadoop1.x中为jobtracker和tasktracker的主从架构
    hadoop2.x中,运行在yarn架构中。为resourceManager和NodeManager主从架构。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝囱门闭合晚怎么办 慢性硬脑膜下血肿复发怎么办 佝偻病导致囟门晚闭怎么办 儿童液体补多了怎么办 脑脊液鼻漏3年了怎么办 结石掉到膀胱里怎么办 肾结石引起的腰疼怎么办 肾结石小但很疼怎么办 狗狗得了尿结石怎么办 生理期第四天必须游泳怎么办 碎石后吐的厉害怎么办 白细胞高红细胞高血尿怎么办? 早期肾癌术后复发该怎么办 肾结石因运动引起尿血怎么办 宝宝大便镜检阳性潜血怎么办 尿不尽刺痛带血怎么办 狗狗拉肚子拉血怎么办 肾血肿怎么办才吸收快 体检尿蛋白高3怎么办 肾炎会引起脸肿怎么办 12小孩尿蛋白3是怎么办 肝癌介入手术后肝功能不好怎么办 屁多且臭便秘怎么办 肝癌术1年后复发怎么办 怀孕便秘怎么办或大便太干拉不出 肠鸣便秘怎么办多尿 奥司他韦过量怎么办 憋的时间长尿痛怎么办 手过敏了怎么办最简单 肾结石不痛但是有血尿怎么办 儿童医院血液科挂不到号怎么办 搬完重物手抖怎么办 弯腰搬重物腰疼怎么办 搬了重物后腰疼怎么办 例假不走公务员体检血尿怎么办 憋尿久了尿不出来怎么办 憋尿引起的总有尿意怎么办 如果孕妇憋尿了怎么办 孕妇憋尿半个月怎么办 尿憋久了排空后膀胱疼怎么办 胸疼肚子疼不规则流血怎么办