您当前的位置: 首页 >  hadoop

宝哥大数据

暂无认证

  • 2浏览

    0关注

    1029博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

宝哥大数据 发布时间:2017-02-04 23:27:17 ,浏览量:2

主从机构
  • 主: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主从架构。

关注
打赏
1587549273
查看更多评论
立即登录/注册

微信扫码登录

0.0399s