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

简介: 【云计算与大数据技术】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在实时处理性能方面比较薄弱,不适合处理事务或者单一处理请求

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

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
存储 安全 网络安全
云计算与网络安全:新时代的技术挑战与应对策略
随着云计算技术的快速发展,网络安全问题变得愈发突出。本文探讨了云服务、网络安全以及信息安全在当今技术领域面临的挑战,并提出了相应的解决方案。通过分析现状和未来趋势,可以更好地了解云计算与网络安全的关系,为构建安全可靠的云服务提供参考。
|
15天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
1天前
|
存储 分布式计算 Cloud Native
云计算:技术革命与代码实践
云计算:技术革命与代码实践
14 1
|
3天前
|
机器学习/深度学习 安全 云计算
拥抱变革:我的云计算技术感悟之旅
【4月更文挑战第23天】 在信息技术不断演进的今天,云计算已成为推动企业数字化转型的重要力量。本文通过作者的个人视角,深入探讨了在学习和实践云计算过程中的技术感悟与成长。文章不仅涉及了云计算的基本概念、核心特性,还分享了作者在面对新技术挑战时的思考和应对策略,旨在为同行提供经验参考,共同促进技术进步与个人发展。
12 3
|
17天前
|
存储 安全 网络安全
未来云计算与网络安全:技术创新与挑战
随着数字化时代的来临,云计算与网络安全成为了当今科技领域的焦点。本文从技术创新和挑战两个方面探讨了未来云计算与网络安全的发展趋势。在技术创新方面,人工智能、区块链和量子计算等新兴技术将为云计算和网络安全带来前所未有的发展机遇;而在挑战方面,隐私保护、数据泄露和网络攻击等问题也将不断考验着技术研究者和行业从业者的智慧和勇气。未来,只有不断创新,同时加强安全防护,才能实现云计算与网络安全的良性发展。
16 1
|
25天前
|
机器学习/深度学习 边缘计算 人工智能
拥抱变革:我的云计算技术感悟之旅
【4月更文挑战第2天】 在信息技术不断演进的今天,云计算已成为推动企业数字化转型的重要力量。本文以个人视角切入,分享了我在学习和实践云计算过程中的技术感悟。文章不仅总结了云计算的核心优势和面临的挑战,还探讨了如何通过持续学习和实践来提升云技术水平,以及对未来云计算技术趋势的展望。
8 1
|
25天前
|
机器学习/深度学习 分布式计算 负载均衡
拥抱变革:我的云计算技术感悟之旅
【4月更文挑战第2天】在信息技术迅猛发展的今天,云计算已成为推动企业数字化转型的重要力量。本文以个人视角切入,分享在学习和实践云计算过程中的技术感悟。内容涵盖从对云计算概念的初步理解到深入应用的实践经历,再到对未来趋势的思考,旨在为同行提供参考并共同探讨云计算领域的新机遇与挑战。
20 3
|
28天前
|
边缘计算 人工智能 安全
当代云计算与网络安全技术探析
随着信息化时代的到来,云计算和网络安全技术日益成为人们关注的焦点。本文从云服务、网络安全和信息安全等多个角度展开探讨,旨在深入剖析当代云计算与网络安全技术的发展现状和前景,为读者提供全面的技术视角和思考。
|
1月前
|
存储 安全 网络安全
云计算与网络安全:技术融合与挑战
在当今数字化时代,云计算与网络安全已成为信息技术领域中不可或缺的重要组成部分。本文将探讨云服务、网络安全和信息安全等技术领域的发展现状,分析技术融合带来的挑战与机遇,以及如何应对日益复杂的安全威胁。
16 1
|
1月前
|
安全 网络安全 云计算
云计算与网络安全:技术前沿与未来趋势
在当今数字化时代,云计算和网络安全成为了信息技术领域中备受关注的话题。云计算作为一种新型的计算模式,正在以其高效、灵活的特性改变着传统的信息技术模式,而网络安全则是随之而来的必然需求。本文将从云服务、网络安全、信息安全等多个技术领域展开探讨,分析当前的技术前沿及未来的发展趋势。

热门文章

最新文章