MapReduce体系架构和工作流程

MapReduce简述 MapReduce 参考: https://www.cnblogs.com/lixiansheng/p/8942370.html https://baike.baidu.com/item/MapReduce/133425?fr=aladdin 概念 MapReduce是面向大数据并行处理的计算模型,用于大规模数据集的并行计算。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、 阅读详情

前言:MapRedeuce这一章节是非常重要的,涉及了很多实例,这篇文章对MapReduce进行概述,了解它的架构和工作机制,为编程做好基础。

概述

1、分布式并行编程
MapReduce是最先由谷歌提出的分布式并行编程模型,相对于传统并行计算框架来讲,它采用非共享式存储,容错性好,以普通的PC机作为硬件,大大节约成本,编程简单,适用于批处理、非实时、数据密集型数据。
2、MapReduce模型
(1)MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽 象到了两个函数:Map和Reduce
在这里插入图片描述

(2)MapReduce采用“分而治之”策略,一个存储在分布式文件系统中的 大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理。
(3)MapReduce框架采用了Master/Slave架构,包括一个Master和若干个Slave。Master上运行JobTracker,Slave上运行TaskTracker

MapReduce的体系结构

主要由四个部分组成,分别是:Client、JobTracker、TaskTracker以及Task。
1、Client:程序通过Client提交到JT端,可以通过Cilent提供的接口查看作业运行状态。
2、JobTracker: 监控资源、调度作业,监控所有的TT和Job的健康,一旦发现失败,就会将任务转移到其他节点。
3、TaskTracker: 想JT汇报资源使用情况和作业运行情况,接受JT的命令并执行。
4、Task: Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动。

MapReduce工作流程

1、概述
在这里插入图片描述
由图可知,不同的Map、Reduce任务之间不会通信,所有的数据交换都要通过MapReduce框架实现。

2、各个执行阶段
在这里插入图片描述
图中的split(分片): HDFS 以固定大小的block 为基本单位存储数据,而对于MapReduce 而言,其 处理单位是split。split 是一个逻辑概念,它只包含一些元数据信息,比如数据 起始位置、数据长度、数据所在节点等。它的划分方法完全由用户自己决定。
Map任务数量: 一个split创建一个Map,由split数量决定。
Reduce任务数量: 最优的Reduce任务个数取决于集群中可用的reduce任务槽(slot)的数目。通常设置比reduce任务槽数目稍微小一些的Reduce任务个数(这样可以预留一些系统资源处理可能发生的错误)

Shuffle过程详解

1、Shuffle过程简介
所谓 Shuffle,是指对 Map 输出结果进行分区、排序、合并等处理并交给 Reduce 的过程。因此,Shuffle 过程分为 Map 端的操作和 Reduce 端的操作,主要执行以下操作
在这里插入图片描述
2. Map 端的 Shuffle 过程
(1)输入数据和执行 Map 任务
Map 任务的输入数据一般保存在分布式文件系统的文件块中,这些文件块的格式是任意的,可以是文档,也可以是二进制格式的。Map 任务接受 <key,value> 作为输入后,按一定的映射规则转换成一批<key,value> 进行输出。
(2)写入缓存
每个Map任务分配一个缓存,MapReduce默认100MB缓存
(3)溢写(分区、排序、合并)
设置溢写比例0.8;分区默认采用哈希函数;排序是默认的操作;排序后可以合并;合并不能改变最终结果
(4)文件归并
在Map任务全部结束之前进行归并,归并得到一个大的文件,放在本地磁盘。文件归并时,如果溢写文件数量大于预定值(默 认是3)则可以再次启动Combiner,少于3不需要;JobTracker会一直监测Map任务的执行,并通知 Reduce任务来领取数据
合并(Combine)和归并(Merge)的区别:
两个键值对<“a”,1>和<“a”,1>,如果合并,会得到<“a”,2>,如果归并,会得到<“a”,<1,1>>
在这里插入图片描述
3、Reduce 端的 Shuffle 过程
(1)领取数据
Reduce任务通过RPC向JobTracker询问Map任务是否已经完成,若完成,则领取数据。
(2)归并数据
Reduce领取数据先放入缓存,来自不同Map机器,先归并,再合并,写入磁盘;多个溢写文件归并成一个或多个大文件,文件中的键值对是排序的;当数据很少时,不需要溢写到磁盘,直接在缓存中归并,然后输出给Reduce
(3)把数据输入给 Reduce 任务
磁盘中经过多轮归并后得到的若干个大文件,不会继续归并成一个新的大文件,而是直接输入给
Reduce 任务,这样可以减少磁盘读写开销。由此,整个 Shuffle 过程顺利结束。接下来Reduce 任务会执行 Reduce 函数中定义的各种映射,输出最终结果,并保存到分布式文件系统中。

MapReduce工作流程 1、Mapper的map()方法传来的<k,v>数据会先进入环形缓冲区kvbuffer(内存中首尾相连的数据结构,环形缓冲区由数据区和索引区组成),当kvbuffer中的数据达到80%,就会发生溢写。 2、溢写前,kvbuffer会对缓冲区内的数据进行快排,先按分区编号排序,再按map的key排序。(排序只会改变索引区索引的顺序,不会改变数据区的数据) 3、溢写多次,就会产生多个磁盘文件file.out,和索引文件file.out.index。 4、多个溢写文件会合并成一个文件(通过归并排序). 阅读详情

相关推荐

MapReduce概述及工作流程

Map:1、根据业务需求处理数据并映射为KV模型2、并行分布式3、计算向数据移动Reduce:1、数据全量/分量加工2、Reducer中可以包含不同的key 分区的范围大于分组3、相同分区的Key汇聚到一个Reducer中4、“相同”的Key调用一次reduce方法5、排序和比较实现key的汇聚K,V使用自定义数据类型 MyKey:WritableComparable1、节省开发成本,提高程序自由度。

yaya_jn的博客 1万+

mapreduce原理_浅析MapReduce原理及其执行过程

浅析MapReduce原理及其执行过程一、MapReduce定义及核心思想MapReduce是一个分布式运算程序的编程框架,是用户开发“基于 hadoop 的数据分析 应用”的核心框架。用户可以基于该框架轻松的编写应用程序,而这些应用程序能够运行在由上千个商用服务器组成的大集群上,并以一种可靠的,具有高容错能力的方式并行处理上TB级别的海量数据集。MapReduce的核心思想就是“分而治之”。1....

weixin_39957805的博客 827

MapReduce框架原理之(二)MapReduce工作流程

MapReduce框架原理之MapReduce工作流程MapReduce工作流程1. 流程图2. 流程详解3. shuffle机制3.1 MapTask中:3.2 ReduceTask中:3.3 Partition分区:3.4 WritableComParable排序3.5 Combiner合并3.6 GroupingComparator分组(辅助排序) MapReduce工作流程 1. 流程图...

Leonardy的博客 901

Hadoop——MapReduce原理

目录一、MapReduce体系结构二、MapReduce工作流程三、 Shuffle过程原理四、实例解析——WordCount任务 一、MapReduce体系结构 体系结构概述 MapReduce体系主要包括四个模块,Client、JobTracker、TaskTracker和Task。 Client模块(客户端) ① 用户通过Client将应用程序交给JobTracker端 ② 用户可以通过...

简简单单记录 1396

大数据学习笔记09:MapReduce概述

文章目录一、引入问题问题1:100副牌,没有大小王,差一张牌,确定缺少的那张牌。问题2:100GB网站访问日志文件,找出访问次数最多的IP地址。二、MapReduce模型三、MapReduce体系架构1、MRv1体系架构(1)Client(2)JobTracker(3)TaskTracker(4)Task2、MRv2 体系架构(1)资源管理器ResourceManager(RM)(2)应用程序管理...

howard2005的专栏 911

Kerberos基础及KDC服务(理论知识)

kerberos基础理论讲解+KDC服务

Siobhan_Mxin的博客 9711

MapReduce体系架构详解

1. 什么是MapReduce? 简言之,mapreduce 一种可用于数据处理的以数据为中心(数据本地化)分布式编程模型,采用的是一种分而治之的思想,分为map和reduce两个阶段。 Map: 将一个Job分解为若干个task Recude: 完成分解的task,并且汇总结果。 eg: 图书馆以书架进行图书清点。这里“以书架为单位”,就是map的过程,分配任务。而每个书架安排人来清点并...

u011926899的专栏 3307

Hypermesh二次开发实战:Tcl命令分类与常用函数详解(附避坑指南)

本文深入解析Hypermesh二次开发中Tcl命令的三大核心类别:界面命令、查询命令与修改命令。重点剖析了*createmark集合管理与hm_getvalue信息查询等关键函数的实战用法,并提供了避免Mark覆盖、生命周期管理等常见陷阱的实用指南,旨在帮助CAE工程师构建高效可靠的自动化前处理流程。

weixin_29233333的博客 240

MapReduce分布式计算框架简介

Hadoopd分布式计算框架——MapReduce

我玩的很开心的博客 2131

QT插件学习系列(一) 初识QtPlugin

QT插件学习系列(一) 初识QtPlugin 1、 概述 为什么我们要学习插件化,其和 windows 导出 dll 有什么区别呢? 导出的动态库如果缺失,程序不能运行。但插件可以。 同一套代码,即可分别在 windows 下和 linux 下生成插件。 QT 本身提供两种插件支持,一种称为高级 API,一种称为低级 API。 高级API的作用是扩展 QT 程序本身,需要子类化 QT 提供的插件基类,例如现有的 QTSqlDriver,因此你可也以编写自己的 QTStyle 扩展 QT。 低级

L_Andy的专栏 3113

rk3568 rockit编译测试

编译rockit不能使用SDK默认编译kernel的交叉编译,需要采用编译buildroot的,而编译buildroot的编译器SDK并没有存放,需要编译过buildroot之后才可以用。命令参数相关解析可查阅代码,这里提醒一下-l参数,这是程序运行计数,默认是100,时间很短,基本上显示画面一闪而过,一度以为是程序哪里出问题了,改用-l 1000,画面显示时间加长。此处跳过系统,单领出来编译。rockit组件包在4.10版本需要手动编译,奈何我的版本怎么都编译不了,后来改用5.10版本才编译通过。

zfenggo的博客 4197

大数据-MapReduce

大数据-MapReduce 分布式并行编程 传统的并行计算,共享型方案刀片服务器,适用于实时的细粒度计算,尤其是计算密集的应用。 MapReduce扩展性好,节点普通pc也可,每个节点拥有自己的内存和空间,适用于非实时的批处理,以及数据密集型的应用。 MapReduce模型 复杂的计算过程高度抽象成两个函数,map和reduce。 将庞大数据切片,对每个小片并行的单独使用map处理,计算向数...

chenbengang的博客 1011

信创环境下,软件测试如何破局?

毕竟,在自主可控的道路上,每一行通过测试的代码,都在为信创产业的未来添砖加瓦。未来,测试工程师不仅要验证软件在信创环境的可用性,更要基于国产软硬件的特性,推动软件进行 “原生设计”—— 例如,针对国产 CPU 的多核架构优化代码,基于国产数据库的索引机制提升查询效率。某政务云平台的测试数据显示,在 “飞腾芯片 + 麒麟操作系统” 环境下,系统的并发处理能力较传统环境下降约 15%,测试团队通过优化软件的线程调度逻辑,最终将性能损失控制在 5% 以内 —— 这正是信创性能测试的价值所在。

weixin_45608163的博客 885

MapReduce处理系统

MapReduce:a Batch Processing System MPI MPI是一个信息传递应用程序接口,包括协议和和语义说明。 是为了处理进程间通讯的协议。 问题: 在MapReduce出现之前,已经有像MPI这样非常成熟的并行计算框架了,那么为什么Google还需要MapReduce? 这是因为,传统并行计算框架基本上都还是在单机上,为了保证不易宕机,一般都选择昂贵的刀片服务器...

crazy_scott的博客 742

道路缺陷检测实战指南:基于YOLOv11的深度学习系统从搭建到落地

道路缺陷检测项目的每一步,都是“理论→实践→反思→优化”的成长循环。当你看到自己开发的系统能精准识别出道路上的每一处裂缝、每一个坑洼时,那种“技术解决真实问题”的成就感,会让你明白深度学习不止是论文里的公式,更是改变行业的工具。如果过程中遇到模型不收敛、界面功能异常等问题,不妨把问题拆解成“数据是否标注准确?”“模型参数是否合理?”“界面逻辑是否有漏洞?”等小问题逐一排查。记住,每解决一个问题,你就离“能独立落地AI项目的工程师”更近一步。

LXY_LOVE36的博客 171

基于YOLOv11的工业装配完整性智能检测系统

在现代工业生产中,产品质量控制是确保企业竞争力的关键环节。其中,装配完整性检查——即检测产品是否安装了所有应有的部件,是质量检测中的重要一环。传统的人工检测方法存在效率低、易疲劳、主观性强等问题。本文提出了一种基于深度学习的目标检测算法YOLOv11的工业装配完整性智能检测系统,通过计算机视觉技术自动识别和验证产品装配的完整性。本文将详细阐述从数据准备、模型训练到系统部署的完整流程,提供可执行的代码实现,并介绍一个适用于该任务的参考数据集。

YOLO 552

HDFS+MapReduce+Hbase+Hive内部机理详解

作者:dufman 网址:http://www.youkuaiyun.com/article/2014-02-17/2818431-HDFS+MapReduce+Hbase HDFS的体系架构 整个Hadoop的体系结构主要是通过HDFS来实现对分布式存储的底层支持,并通过MR来实现对分布式并行任务处理的程序支持。 HDFS采用主从(Master/Slave)结构模型,一个HD

forearrow的专栏 1045

Freeswitch DTMF 按键无法接收问题修复

freeswitch 在接收到 update后,会更新成新的 payload type,但是给的200响应,仍然是旧的,这时候就会导致手机侧认识需要发送旧的payload,所以发到 fs 后就会导致直接丢包,不去处理RTP包了。呼叫时需要设置通道变量 rtp_manual_rtp_bugs=ACCEPT_ANY_PAYLOAD ,这时候FS 就不会对包的payload进行判断,直接判定通过。应该修复 freeswitch 给响应时,应该根据收到的 payload 发送给手机,但是一直未找到正确的路径。

2301_81507069的博客 373

资源调度_YARN-Hadoop资源管理调度框架-深入理解系统架构和工作流程

YARN (Yet Another Resource Negotiator,另一种资源协调者)YARN是Hadoop 2.0 中新增的资源管理调度框架,就是将MR v1中的JobTracker的职责进行拆分,将资源管理和任务调度监控拆分成独立的进程:一个全局的资源管理和一个每个作业的管理(ApplicationMaster)。ResourceManager和NodeManager提供了计算资源的分...

weixin_39525313的博客 399

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【汪汪学HADOOP】第三天:认识MapReduce(分布式计算编程模型)

MapReduce背景:分布式文件系统HDFS解决了大文件存储问题,但业务代码开发时,还得考虑数据在HDFS的物理分布情况,加重开发者在处理分布式数据时的负担。- 新技术:MapReduce,屏蔽底层分布式系统运作机制,让开发者更专注于业务开发。

weixin_51198976的博客 601

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

什么是MapReduce,MapReduce的工作流程和原理是什么

一、MapReduce的概念 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键...

数智集的博客 6万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

MapReduce 整体的工作流程和原理介绍

一、MR 的整体工作流程 MapTask 阶段 Shuffle 阶段 ReduceTask 阶段 二、MapTask 阶段 1. 工作机制 Read 阶段:客户端根据待处理的数据进行接片,然后向 Yarn 提交作业信息申请 对应数量的 MapTask;MapTask 启动后通过 InputFormat 获得的 RecordReader,从输入 InputSplit 中解析出一个个的 key/value 读取到 Mapper 程序。 Map 阶段:将解析出的 key/value 交给用户编写的 ma

weixin_44480009的博客 3927

MapReduce详细工作流程解析

MapReduce工作流程一.流程示意图二.流程详解1.split阶段2.map阶段3.Shuffle阶段4.Reduce阶段5.注意三.各个阶段的工作机制1.InputFormat数据输入1.1FileInputFormat抽象类1.1.1FileInputFormat源码解析1.1.2FileInputFormat切片大小的参数配置1.1.3获取切片信息1.1.4总结1.2FileInputFormat实现类1.2.1TextInputFormat1.2.2KeyValueTextInputFormat

May_J_Oldhu的博客 8866

Mapreduce工作流程与简介

最近几天一直在学习关于大数据方面的相关技术,今天学习了MapReduce的工作流程,让我对数据地处理有了新的认识,接下来我分享一下关于MapReduce2.0的工作流程 Mapreduce简介 Hadoop MapReduce 源于Google发表的 MapReduce论文。Hadoop MapReduce 其实就是Google MapReduce的一个克隆版本。Hadoop 2.0即第二代Had...

SqrsCbrOnly1的博客 5368

MapReduce 工作流程

MapReduce通过将复杂的大规模数据处理问题分解为简单的映射(Map)和归约(Reduce)操作,极大地简化了分布式计算的过程。尽管随着技术的发展,出现了更高效的计算框架(如Apache Spark),但MapReduce因其成熟稳定、易于理解和实施而在许多场景中占据重要地位。对于批处理任务,特别是那些涉及大量数据的场景,MapReduce仍然是一个非常有效的解决方案。

Davina_yu的博客 1380
上一篇: 云数据库系统概述及申请阿里云数据库——大数据平台
下一篇: Eclipse中MapReduce配置、应用以及Haoop的数据类型
lqcStar
博客等级 码龄7年 10粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lqcStar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值