11.MapReduce第1部分

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


两个核心函数Map、Reduce

这里写图片描述


MapReduce的体系结构

这里写图片描述

这里写图片描述

这里写图片描述

TaskTracker是以什么方式衡量资源使用情况?
    在MapReduce设计中,TaskTracker是使用一种槽slot的概念:
先划分:TaskTracker使用slot把机器上的CPU、内存等资源进行等量划分,分成大小相同的slot。
再调度:将各个TaskTracker上空闲的slot分配给task(maptask、reducetask)使用
启动:TaskTracker启动maptask、reducetask

MapReduce工作流程

1、工作流程概述:

数据分块存储到不同的HDFS机器节点上--->把大数据集分片操作split
每一个小分片单独启动一个map()任务,去负责处理该分片
    map()任务的输入<key,value>,输出list<key,value>,这些输出的list<key,value>要
“经过shuffle处理”,shuffle处理完之后才发送到不同的reduce()机器上进行后续的并行处理,
reduce()处理后,输出到HDFS
见下图所示:

这里写图片描述

2、MapReduce各个执行阶段

先通过InputFormat进行加载文件中的数据(InputFormat工作:输入进行格式验证;逻辑切分split)
RR:记录阅读器RecordReader

这里写图片描述

这里写图片描述


MapReduce的核心:shuffle过程

【说明】:一个shuffle过程包括map中的shuffle和reduce中的shufle

【过程简介】:
    数据是保存在分布式文件系统HDFS中的,是从分布式文件系统HDFS中输入数据;
    输入完之后进行分片处理,每个分片交给map任务,map任务包含用户对数据的处理逻辑,
    map处理结束后生成很多的键值对,这些键值对不是直接发送给reduce,也不是直接写入磁盘,
而是先写入缓存中去,当缓存被写满的时候,发生溢写,在混村的数据写入磁盘的过程中会
发生(分区、排序、合并),把(分区、排序、合并)后的数据写入到磁盘文件中。
    因此,写入到磁盘中的数据是(分区、排序、合并之后的)的大文件,生成的该大文件之后会
通知reduce任务取走。

---------------------------------------------------

    reduce任务会取走属于自己的对应的分区中的数据,执行归并,之后再输入给reduce()函数,
    reduce()函数中有用户写好的处理数据的逻辑,处理完成后进行输出,输出给
分布式文件系统HDFS
图示见下:

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值