文档详情

《Hadoop技术原理》课件——6.分布式计算框架MapReduce.pptx

发布:2025-01-21约4.56千字共19页下载文档
文本预览下载声明

Hadoop技术原理

分布式计算框架MapReduce

MapReduce简介

·什么是MapReduce

MapReduce是一种简化并行计算的编程模型,用于进行大数据量的计算。·MapReduce设计思想

MapReduce采用“分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个子节点共同完成,然后整合各个子节点的中间结果,得到最终的计算结果。

简而言之,MapReduce就是“分散任务,汇总结果”

MapReduce简介

01

JobTracker

TaskTrackerTaskTracker

Map任务Reduce任务Map任务Reduce任务

Client

TaskTracker

Map任务Reduce任务

MapReduce简介

MapReduce架构

02

·

03MapReduce简介

●JobTracker

JobTracker负责

·接受客户端提交作业

·分配任务到计算节点(TaskTracker)

·监控作业的运行情况,更新作业状态,作业容错处理·客户端可通过命令行或Web页面查看作业状态

JobTracker可以和NameNode运行在同一个服务器上

·集群规模较大或是任务繁重的场景,建议单独运行JobTracker

·JobTracker任务分配策略

把计算移动到数据

JobTracker会与NameNode通信以定位任务所需数据的位置·从而更有效的分配任务执行节点

JobTracker不保证一定在数据所在节点处理数据

·取决与任务节点的空闲状态

·尽量在一个机架

MapReduce简介

04

05MapReduce简介

●TaskTracker

TaskTracker执行JobTracker指令,是任务运行节点·调用Map和Reduce,以及Shuffle和Sort操作·通常和DataNode装在一起

·发送心跳消息给JobTracker

·向JobTracker汇报可运行任务数量

每一个任务会生成一个单独的JVM进程

·确保TaskTracker进程不会因为用户代码而崩溃

·TaskTracker监视这些生成的进程,捕获输出和退出代码

·MapReduce特点

易于编程

良好的扩展性

高容错性

擅长对PB级以上海量数据进行离线处理

·MapReduce不适用场景

实时计算

MapReduce无法像MySQL一样,在毫秒或者秒级内返回结果。

流式计算

流式计算的输入数据是动态的,而MapReduce的输入数据集是静态的,不能动态变化。DAG(有向图)计算

多个应用程序存在依赖关系,后一个应用程序的输入为前一个的输出。在这种情况下,

MapReduce并不是不能做,而是使用后,每个MapReduce作业的输出结果都会写入到磁盘,会造成大量的磁盘IO,降低使用性能。

MapReduce简介

06

MapReduce编程模型

MapReduce编程模型

·MapReduce编程模型概论

从MapReduce自身的命名特点可以看出,MapReduce由两个阶段组成:Map和Reduce。用户只需要编写map()和reduce()两个函数,即可完成分布式程序的设计。

·输入一个大文件,通过Split之后,将其分为多个分片

·每个文件分片由单独的机器去处理,这就是Map方法

·将各个机器计算的结果进行汇总并得到最终结果,这就是Reduce方法

01

02MapReduce编程模型

·MapReduce编程模型概论

大任务:1+2+3+4+5+6+7+8+9+10

Split

小任务:1+2+3+45+6+78+9+10k1,v1

Map阶段

k2,v27

101827sk3,v3

Reduce阶段

55

显示全部
相似文档