MapReduce基础原理、MR与MPP区别

MapReduce概述

  • MapReduce(MR)本质上是一种用于数据处理的编程模型;MapReduce用于海量数据的计算HDFS用于海量数据的存储(Hadoop Distributed File System,Hadoop分布式文件系统)。
  • Hadoop MapReduce 是一个编程框架,Hadoop环境中,可运行用各种语言编写的MapReduce程序,用于创建在大型商用硬件集群上处理大量数据的应用程序,类似于JRE环境,可以在这个架构下开发应用程序。
  • MapReduce 程序本质上并行,本质是通过并行计算提升算力。
  • MapReduce是一种编程模型,用于通过集群上的并行分布式算法处理大型数据集。MapReduce会将任务分为小部分,将它们分配给不同系统来独立处理每个部分,在处理完所有零件并进行分析之后,将输出收集到一个位置,然后为给定问题输出数据集
  • MapReduce使用的基本信息单位是键值对在通过MapReduce模型传递之前,所有结构化或非结构化数据都需要转换为键值对
  • MapReduce模型具有两个不同的功能,映射功能和归约功能
  • MapReduce 的工作模式主要分为 Map 阶段和还原阶段(shuffle阶段和reducer阶段)。
  • 操作顺序始终为:Map -> Shuffle -> Reduce
    • Map阶段:Map阶段是MapReduce框架中的关键步骤,映射器将为非结构化数据提供结构,映射器将一次处理一个键值对,一个输入可以产生任意数量的输出,Map函数将处理数据并生成几个小数据块
    • 还原阶段:shuffle阶段和reducer阶段一起称为还原阶段,Reducer将来自映射器的输出作为输入,并按照程序员的指定进行最终输出,此新输出将保存到HDFS。Reducer将从映射器中获取所有键-值对,并检查所有键与值的关联;将获取与单个键关联的所有值,并将提供任意数量的键值对的输出。
    • MapReduce是顺序计算,为保障Reducer正常工作,Mapper必须完成执行,否则Reducer阶段将不会运行。
  • 在 Hadoop 集群中,计算节点一般和存储节点相同,即 MapReduce 框架和 HDFS(Hadoop 分布式文件系统)均运行在同一组节点上。这种配置允许框架有效地调度已经存在数据的节点上的作业,使得跨集群的带宽具有较高的聚合度,能够有效利用资源。

MapReduce 工作原理

一个 MapReduce 任务(Job)通常将输入的数据集分割成独立的块,这些块被 map 任务以完全并行的方式处理。框架对映射(map)的输出进行排序,然后将其输入到 reduce 任务中。通常,作业的输入和输出都存储在文件系统中。框架负责调度任务、监视任务并重新执行失败的任务

上面说到,MapReduce 框架只对 <key, value> 键值对形式的键值对进行处理。
该框架会将任务的输入当成一组 <key, value> 键值对,最后也会生成一组 <key, value> 键值对作为结果。其中的 key 和 value 可以根据具体问题将其理解为不同的类型。

key 和 value 的类必须由框架来完成序列化,因此我们需要做的就是实现其中的可写接口(Writable)。此外,对于其中的一些关键类还必须实现 WritableComparable 接口,以便于框架对其进行排序。

一个 MapReduce 作业从输入到输出的过程中,经历了以下过程:
(输入的原始数据)<k1, v1> -> Map -> <k2, v2> -> Combine -> <k2, v2> -> Reduce -> <k3, v3>(输出的计算结果)
在这里插入图片描述

在这里插入图片描述

ResourceManager

MapReduce 框架由单个主节点(Master)的 ResourceManager每个从节点(Slave) NodeManager每个应用程序的 MRAppMaster组成。

在编程框架完善并打包之后,Hadoop 的作业客户端(job client)可以将作业(一般是 jar 包或者可执行文件)和配置项提交给 ResourceManager,ResourceManager负责将作业代码和配置项分发给从节点(Slave),之后ResourceManager负责作业的调度和监视,同时也向作业客户端提供状态和诊断信息。
在这里插入图片描述

  • Client Service:应用提交、终止、输出信息(应用、队列、集群等的状态信息)。
  • Adaminstration Service: 队列、节点、Client 权限管理。
  • ApplicationMasterService: 注册、终止 ApplicationMaster, 获取 ApplicationMaster 的资源申请或取消的请求,并将其异步地传给 Scheduler, 单线程处理。
  • ApplicationMaster Liveliness Monitor: 接收 ApplicationMaster 的心跳消息,如果某个 ApplicationMaster 在一定时间内没有发送心跳,则被任务失效,其资源将会被回收,然后 ResourceManager 会重新分配一个 ApplicationMaster 运行该应用(默认尝试 2 次)。
  • Resource Tracker Service: 注册节点, 接收各注册节点的心跳消息。
  • NodeManagers Liveliness Monitor: 监控每个节点的心跳消息,如果长时间没有收到心跳消息,则认为该节点无效, 同时所有在该节点上的 Container 都标记成无效,也不会调度任务到该节点运行。
  • ApplicationManager: 管理应用程序,记录和管理已完成的应用。
  • ApplicationMaster Launcher: 一个应用提交后,负责与 NodeManager 交互,分配 Container 并加载 ApplicationMaster,也负责终止或销毁。
  • YarnScheduler: 资源调度分配, 有 FIFO(with Priority),Fair,Capacity 方式。
  • ContainerAllocationExpirer: 管理已分配但没有启用的 Container,超过一定时间则将其回收。

MPP与MapReduc区别

MPP和MapReduc的区别主要体现在计算方式上,MPP和MapReduce都是用于实现并行化处理的技术,但它们采用的并行化策略不同

关于MPP理解
MPP(Massively Parallel Processing)即大规模并行处理,是一种在多个处理器间分配工作负载的并行计算模型,常用于传统的关系数据库管理系统中,以提高数据库处理的性能和吞吐量。MPP系统通常由成百上千个节点(节点指的是一组处理器和存储器)组成,每个节点都运行数据库的一个实例,各个节点之间通过高速网络互相通信,MPP系统会将数据表分片(通过切割表中的行),这些数据片会被分配到每个节点上,每个节点都有独立的存储器。

MPP系统的平行计算方式是将数据库划分为若干个子部分,设定若干个可供并行计算的操作,每个操作运行在一个节点上,从而并行地进行处理,由于MPP的数据是在不同节点分片存储,因此一般来说MPP的计算任务每一部分是和固定节点绑定的。

MapReduc是一种基于“映射(Map)”和“化简(Reduce)”的并行计算模型,主要用于海量数据的分布式处理。一般来说,MapReduce将大数据集分成若干个小数据块,并且将每个数据块分配给不同的计算节点来处理。每个节点都独立地对数据块进行“Map”操作,得到中间数据,然后将相同中间数据的部分发送到同一节点进行“Reduce”操作,最终将得到的数据合并起来,得到最终结果。

因此,MPP和MapReduce在并行计算中的采用策略不同,更应用于不同的领域。MPP主要用于传统的关系型数据库的大规模并行处理,适合相对简单的计算场景。MapReduce更适合分布式计算、海量数据的分析和处理,适用于更复杂、更庞大的场景。虽然两种技术都有其优缺点,但在不同的情况下,它们都有效地推动了计算的并行处理。

MapReduce: Simplified Data Processing on Large Clusters

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/86293.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【力扣每日一题】2023.8.12 合并K个升序链表

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个链表数组&#xff0c;数组里的链表都是升序的&#xff0c;让我们合并这些链表&#xff0c;要求合并之后还是升序的。 最简…

【C语言】数据在内存中的存储详解

文章目录 一、什么是数据类型二、类型的基本归类三、 整型在内存中的存储1.原码、反码、补码2.大小端(1)什么是大小端(2)为什么会有大小端 四、浮点型在内存中的存储1. 浮点数存储规则 五、练习1.2.3.4.5.6.7. 一、什么是数据类型 我们可以把数据类型想象为一个矩形盒子&#x…

JVM—内存管理(运行时数据区)、垃圾回收

背景介绍 当JVM类加载器加载完字节码文件之后&#xff0c;会交给执行引擎执行&#xff0c;在执行的过程中会有一块JVM内存区域来存放程序运行过程中的数据&#xff0c;也就是我们图中放的运行时数据区&#xff0c;那这一块运行时数据区究竟帮我们做了哪些工作&#xff1f;我们…

阿里巴巴面试题---考察对底层源代码的熟悉程度

题目如图所示: 很多人可能会觉得两个输出都会是false,因为我们都会觉得""比较的是引用类型的地址,虽然放入的值都一样但是重新创造了新对象,地址不一样,所以结果都是false. 然而,当我们运行程序会发现结果都是false. 下面,我们来分析为什么是这样的结果. 我们知道…

DolphinScheduler集群搭建详细笔记

1.DolphinScheduler Cluster部署 1.1 集群部署规划 集群模式下&#xff0c;可配置多个Master及多个Worker。通常可配置2~3个Master&#xff0c;若干个Worker。由于集群资源有限&#xff0c;此处配置一个Master&#xff0c;三个Worker&#xff0c;集群规划如下。 主机名ip服务…

sklearn机器学习库(一)sklearn中的决策树

sklearn机器学习库(一)sklearn中的决策树 sklearn中决策树的类都在”tree“这个模块之下。 tree.DecisionTreeClassifier分类树tree.DecisionTreeRegressor回归树tree.export_graphviz将生成的决策树导出为DOT格式&#xff0c;画图专用tree.export_text以文字形式输出树tree.…

【论文阅读】DEPCOMM:用于攻击调查的系统审核日志的图摘要(SP-2022)

Xu Z, Fang P, Liu C, et al. Depcomm: Graph summarization on system audit logs for attack investigation[C]//2022 IEEE Symposium on Security and Privacy (SP). IEEE, 2022: 540-557. 1 摘要 ​ 提出了 DEPCOMM&#xff0c;这是一种图摘要方法&#xff0c;通过将大图划…

axios请求

参考&#xff1a;https://www.axios-http.cn/docs/instance

windows安装docker 异常解决

Docker for Windows 安装Docker for Windows报错信息&#xff1a;Docker Desktop requires Windows 10 Pro/Enterprise/Home (18363). 解决方式 1.更新 Windows 系统版本Windows10Upgrade9252.exe 下载地址下载完运行 Windows10Upgrade9252.exe更新完&#xff0c;安装 Docke…

【Hilog】鸿蒙系统日志源码分析

【Hilog】鸿蒙系统日志源码分析 Hilog采用C/S结构&#xff0c;Hilogd作为服务端提供日志功能。Client端通过API调用&#xff08;最终通过socket通讯&#xff09;与HiLogd打交道。简易Block图如下。 这里主要分析一下。Hilog的读、写、压缩落盘&#xff0c;以及higlog与android…

python异步IO完全指南

原地址&#xff1a;https://flyingbyte.cc/post/async_io/ python异步IO完全指南 做为一种并行编程的範式&#xff0c;异步IO在Python中非常受重视&#xff0c;从Python3.4到3.7快速演进。 我们已经有多线程&#xff0c;多进程&#xff0c;并发&#xff08;concurrency&#x…

第R3周 - 天气预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 我的环境&#xff1a; 语言环境&#xff1a;Python3.10.7编译器&#xff1a;VScode深度学习环境&#xff1a;TensorFlow 2.13.0 数据集&#xff1a; 一、前期…

健启星|医学营养的市场先行者

随着《“健康中国2030”规划纲要》、《国民营养计划&#xff08;2017-2030年&#xff09;》等政策的陆续发布&#xff0c;标志着以传统药物治疗为中心的医疗模式时代正式转型到以预防和康复为中心的新的医学营养时代。在此背景下&#xff0c;符合时代需求的特医食品成为“医学营…

UML箭头汇总

参考&#xff1a;http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html 1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言。 简单说就是以图形方式表现模型&#xff0c;根据不同模型进行分类&#xff0c;在UML 2.0中有13种图&#xff…

Spring Boot | 使用mkcert本地生成SSL证书配置后端接口为HTTPS协议

Tips&#xff1a;本篇博客是 Windows 版本的使用教程&#xff0c;cmd 中执行的命令前缀是下载的软件名称&#xff0c;需要改成自己下载软件的名称&#xff01; 下载软件 首先去 GitHub 仓库中下载软件&#xff0c;下载完成后将文件保存在英文路径下的文件夹&#xff0c;之后以…

Zookeeper 面试题

一、ZooKeeper 基础题 1.1、Zookeeper 的典型应用场景 Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架&#xff0c;开发人员可以使用它来进行分布式数据的发布和订阅。 通过对 Zookeeper 中丰富的数据节点进行交叉使用&#xff0c;配合 Watcher 事件通知机…

搭建了个腾讯滑块服务,直接取ticket的,仅供测试.

最近闲着没事搭建了个TX滑块验证码服务,C#写的. 接口是rest接口 提交任务POST http://47.104.132.20:19090/task/addTask 提交数据: { "url": "https://ssl.captcha.qq.com/template/wireless_mqq_captcha.html?stylesimple&aid16&uin3557247785…

2023年中国负极石墨用坩埚市场规模现状及前景分析:负极材料为行业增长助推器[图]

负极石墨用坩埚分为再生坩埚和石墨匣钵&#xff0c;其中&#xff0c;再生坩埚主要应用于艾奇逊炉工艺的石墨化工序&#xff0c;石墨匣钵主要应用于预碳化和碳化工序。 负极石墨用坩埚分类 资料来源&#xff1a;共研产业咨询&#xff08;共研网&#xff09; 得益于动力电池的旺…

手机怎样换ip地址 更改手机IP地址有哪些方式

ip地址怎么改&#xff1a;使用深度ip转换器 在互联网时代&#xff0c;IP地址扮演着网络世界中的独特标识符。它是我们在上网时必不可少的元素&#xff0c;负责为设备提供独立的身份&#xff0c;并将信息传输到正确的目的地。然而&#xff0c;有时我们需要改变IP地址&#xff0c…

Kotlin 基础教程一

Kotlin 基本数据类型 Java | Kotlin byte Byte short Short int Int long Long float Float double Double boolean Boolean c…