【云计算与大数据技术】Hadoop MapReduce的讲解(图文解释,超详细必看)

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 【云计算与大数据技术】Hadoop MapReduce的讲解(图文解释,超详细必看)

一、Hadoop MapReduce架构

MapReduce 是一种分布式计算框架,能够处理大量数据 ,并提供容错 、可靠等功能 , 运行部署在大规模计算集群中,MapReduce计算框架采用主从架构,由 Client、JobTracker、TaskTracker组成

Client的作用

用户编写 MapReduce程序,通过Client提交到JobTracker

JobTracker的作用

JobTracker负责管理运行的 TaskTracker节点;负责Job的调度与分发

TaskTracker的作用

JobTracker发送具体的任务给 TaskTracker节点执行

在 MapReduce框架中,所有的程序执行最后都转换成task来执行

下图显示了 HDFS 作为 MapReduce 任务的数据输入源 ,每个 HDFS 文件切分成多个 ,Block 将其作为 MapReduce任务的数据输入源,执行计算任务

二、Hadoop MapReduce 与高效能计算、 网格计算的区别

高性能计算的思想是将计算作业分散到集群机器上,集群计算节点访问存 储区域网络SAN 系统构成的共享文件系统获取数据,这种设计比较适合计算密集型作业,当需要访问像PB级别的数据的时候,由于存储设备网络带宽的显示,很多集群计算节点只能空闲等待数据

由于 Hadoop使用专门为分布 式计算设计的文件系统 HDFS,在计算的时候只需要将计算代码推送到存储节点上即可在存储节点上完成数据的本地化计算,Hadoop中的集群存储节点也是计算节点

在分布式编程方面,MPI属于比较底层的开发库,它赋予了程序员极大的控制能力;Hadoop的MapReduce却是一个高度抽象的并行编程模型,它将分布式并行编程抽象为两个原语操作,即Map操作和Reduce操作

网格计算通常是指通过现有的互联网,利用大量来自不同地域,资源异构的计算机空闲的CPU和磁盘来进行分布式存储和计算

三、MapReduce工作机制

MapReduce计算模式的工作原理是把计算任务拆解成Map和Reduce两个过程来执行

在数据被分割后通过Map函数的程序将数据映射成不同的区块,分配给计算机集群处理达到分布式运算的效果,再通过Reduce函数的程序将结果汇整,最后输出运行计算结果

1:Map

Map - MapReduce会根据输入文件计算输入分片(inputsplit),每个输入分片针对一个Map任务,输入分片存储的并非数据本身,而是一个分片长度和一个记录数据位置的数组,输入分片往往和HDFS的block块的关系很密切

接着执行Map函数,操作一般由用户指定,Map 函数产生输出结果时并不是直接写入到磁盘,而是采用缓冲方式写入到内存中,并对数据按关键字进行预排序

2:Reduce

执行用户指定的 Reduce函数,输出计算结果到 HDFS集群上。Reduce执行数据的归并,数据是以key,list(value1,value2... ) 的方式存储  

3:Combine

Comine-Combine 是在本地进行的一个在Map端做的Reduce的过程,其目的是提高Hadoop的效率

4:Shuffle

Shuffle描述数据从 Map Task输出到Reduce Task输入的这段过程

Reducer真正运行之前,所有的时间都是在拉取数据,做merge,且不断重复地做,下面描述Reduce端的Shuffle细节

copy 过 程  -  其 用 于 简 单 地 拉 取 数 据 。Reduce 进 程 启 动 一 些 数 据 copy 线 程(Fetcher),通过HTTP请求文件数据

merge 阶段 - 这里的 merge 如 Map 端的 merge 动作  

Reducer 的输入文件 - 不 断 地 merge,最后会生成一个“最 终 文 件

5:Speculative Task

存在这样的计算任务,它的运行时间远远长于其他任务的计算任务,减少该任务的运行时间就可以提高整体作业的运行速度,这种任务也称为“拖后腿”任务

导致任务执行缓慢的原因有很多种,包括软件和硬件原因

为了解决上述“拖 后 腿 ”任务导致的系统性能下降问题,Hadoop 为该task启动Speculative Task,与原始的 task同时运行,以最快运行结束的结果返回,加快Job的执行,当为一个task启动多个重复的task时,必然导致系统资源的消耗,因此采用Speculative Task的方式是一种以空间换时间的方式

四、任务容错

MapReduce是一种通用的计算框架,有着非常健壮的容错机制,容错粒度包括 JobTracker、TaskTracker、Job、Task、Record等级别

对于任务的容错机制,MapReduce 采用最简单的方法进行处理

如果是一个 Map任务或 Reduce任务失败了,那么调度器会将这个失败的任务分配到其他节点重新执行

如果是一个节点死机了,那么在这台死机的节点上已经完成运行的 Map任务及正在运行中的 Map和 Reduce任务都将被调度重新执行,同时在其他机器上正在运行的 Reduce任务也将被重新执行

五、MapReduce的缺陷与不足

MapReduce 是一种离线处理框架,比较适合大规模的离线数据处理

MapReduce在实时处理性能方面比较薄弱,不适合处理事务或者单一处理请求

创作不易 觉得有帮助请点赞关注收藏~~~

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
存储 机器学习/深度学习 SQL
大数据处理与分析技术
大数据处理与分析技术
102 2
|
1月前
|
存储 分布式计算 NoSQL
【赵渝强老师】大数据技术的理论基础
本文介绍了大数据平台的核心思想,包括Google的三篇重要论文:Google文件系统(GFS)、MapReduce分布式计算模型和BigTable大表。这些论文奠定了大数据生态圈的技术基础,进而发展出了Hadoop、Spark和Flink等生态系统。文章详细解释了GFS的架构、MapReduce的计算过程以及BigTable的思想和HBase的实现。
|
1天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
13 2
|
15天前
|
SQL 运维 大数据
轻量级的大数据处理技术
现代大数据应用架构中,数据中心作为核心,连接数据源与应用,承担着数据处理与服务的重要角色。然而,随着数据量的激增,数据中心面临运维复杂、体系封闭及应用间耦合性高等挑战。为缓解这些问题,一种轻量级的解决方案——esProc SPL应运而生。esProc SPL通过集成性、开放性、高性能、数据路由和敏捷性等特性,有效解决了现有架构的不足,实现了灵活高效的数据处理,特别适用于应用端的前置计算,降低了整体成本和复杂度。
|
23天前
|
机器学习/深度学习 存储 大数据
在大数据时代,高维数据处理成为难题,主成分分析(PCA)作为一种有效的数据降维技术,通过线性变换将数据投影到新的坐标系
在大数据时代,高维数据处理成为难题,主成分分析(PCA)作为一种有效的数据降维技术,通过线性变换将数据投影到新的坐标系,保留最大方差信息,实现数据压缩、去噪及可视化。本文详解PCA原理、步骤及其Python实现,探讨其在图像压缩、特征提取等领域的应用,并指出使用时的注意事项,旨在帮助读者掌握这一强大工具。
58 4
|
1月前
|
机器学习/深度学习 存储 大数据
云计算与大数据技术的融合应用
云计算与大数据技术的融合应用
|
1月前
|
存储 弹性计算 分布式计算
云计算在大数据处理中的优势与挑战
云计算在大数据处理中的优势与挑战
|
1月前
|
SQL 存储 大数据
单机顶集群的大数据技术来了
大数据时代,分布式数仓如MPP成为热门技术,但其高昂的成本让人望而却步。对于多数任务,数据量并未达到PB级,单体数据库即可胜任。然而,由于SQL语法的局限性和计算任务的复杂性,分布式解决方案显得更为必要。esProc SPL作为一种开源轻量级计算引擎,通过高效的算法和存储机制,实现了单机性能超越集群的效果,为低成本、高效能的数据处理提供了新选择。
|
1月前
|
SQL 存储 算法
比 SQL 快出数量级的大数据计算技术
SQL 是大数据计算中最常用的工具,但在实际应用中,SQL 经常跑得很慢,浪费大量硬件资源。例如,某银行的反洗钱计算在 11 节点的 Vertica 集群上跑了 1.5 小时,而用 SPL 重写后,单机只需 26 秒。类似地,电商漏斗运算和时空碰撞任务在使用 SPL 后,性能也大幅提升。这是因为 SQL 无法写出低复杂度的算法,而 SPL 提供了更强大的数据类型和基础运算,能够实现高效计算。
|
1月前
|
存储 大数据 定位技术
大数据 数据索引技术
【10月更文挑战第26天】
58 3