Mapreduce

1.Mapreduce的策略

 采用分而治之

 把非常庞大的数据集,切分成非常多的独立的小分片

 然后对每一个分片单独的启动一个map任务

 最终通过多个map任务,并行的在多个机器上处理

2.mapreduce的理念

 计算向数据靠拢而不是数据向计算靠拢

3.mapreduce的架构

 一个master 服务器-->作业跟踪器jobTracker-->负责整个作业的调度和处理以及失败和恢复

 若干个slave服务器--->负责具体任务的执行的组件taskTracker-->负责接收jobTracker给它发的作业处理指令完成具体的 任务处理

 以slot为单位调度

jobTrack:作业跟踪器

 负责资源的监控和作业的调度

 监控底层的task以及当前job的健康状况

 如果tasktrack出现错误则转移到相近的节点

taskTrack:任务调度器

 执行具体的任务接收jobtrack发送过来的命令

 把资源使用情况通过心跳的形式发送给jobtrack

Map 输入<K1,V1>如<行号,"">,输出 list(<K2,V2>),将小数据集进一步解析成一批<key,value>对,每一个<k1,v1>会输出<K2,V2>是中间结果

reduce输入<k2,list(v2)>如<"a",<1,1,1>>输出<k3,v3>说明:输出的中间结果<k2,list<k2>>中的list(v2)表示的是一批属于同一个k2的value

4.mapreduce的工作流程

 输入分片

进行map计算之前,根据输入文件计算输入分片,输入分片中存储的是分片的长度和记录数据的位置,分片的大小一般根据块的  大小来规定

 map过程

map过程是利用函数来进行操作,本地化操作也都是在数据存储节点上进行操作的

 combiner过程

在map操作计算出中间值之前对key值做一个简单的合并重复key的操作

 shuffle过程

将map的输出过程作为reduce输入过程的操作

 reduce过程

函数化,最终的结果存储在hdfs上

5.mapreduce的运行机制

111

Hadoop中,一个MapReduce作业会把输入的数据集切分为若干独立的数据块,由Map任务以完全并行的方式处理

框架会对Map的输出先进行排序,然后把结果输入给Reduce任务。

作业的输入和输出都会被存储在文件系统中,整个框架负责任务的调度和监控,以及重新执行已经关闭的任务

MapReduce 框架和分布式文件系统是运行在一组相同的节点,计算节点和存储节点都是在一起的







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值