MapReduce 简单介绍

MapReduce

  • 一、MapReduce概述
  • [二、MapReduce 基本设计思想](#二、MapReduce 基本设计思想)
    • 分而治之
    • [2.2 抽象成模型](#2.2 抽象成模型)
    • [2.3 上升到框架](#2.3 上升到框架)
  • [三、MapReduce 优缺点](#三、MapReduce 优缺点)
    • [3.1 MapReduce 的优点](#3.1 MapReduce 的优点)
    • [3.1 MapReduce 的缺点](#3.1 MapReduce 的缺点)
  • [四、MapReduce 编程模型](#四、MapReduce 编程模型)
    • [4.1 MapReduce 分布式计算原理](#4.1 MapReduce 分布式计算原理)
    • [4.2 MapReduce 编程模型](#4.2 MapReduce 编程模型)
    • [4.3 剖析 MapReduce 编程模型](#4.3 剖析 MapReduce 编程模型)
      • [4.3.1 问题思路分析](#4.3.1 问题思路分析)
      • [4.3.2 数据分割](#4.3.2 数据分割)
      • [4.3.3 数据处理](#4.3.3 数据处理)
      • [4.3.4 数据局部合并](#4.3.4 数据局部合并)
      • [4.3.5 数据聚合](#4.3.5 数据聚合)
    • [4.4 MapReduce 运行机制](#4.4 MapReduce 运行机制)
  • [五、MapReduce 容错](#五、MapReduce 容错)
  • [六、 suffle 过程](#六、 suffle 过程)

一、MapReduce概述

MapReduce 是一个使用简单的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错式并行处理TB级别的数据集。

  • MapReduce是一个并行程序的计算模型与方法
  • MapReduce是一个并行程序运行的软件框架
  • MapReduce是一个基于集群的高性能并行计算平台

二、MapReduce 基本设计思想

分而治之

2.2 抽象成模型

2.3 上升到框架

MapReduce 提供统一计算框架的主要目标是实现自动并行化计算,为程序员隐藏系统层面的细节。

  • 计算任务的自动划分和调度。
  • 数据的自动化分布存储和划分。
  • 处理数据与计算任务的同步。
  • 结果数据的收集整理,如排序,合并,分区等。
  • 系统通信、负载均衡、计算性能优化。
  • 处理系统节点出错检测和失效恢复。

三、MapReduce 优缺点

3.1 MapReduce 的优点

  • MapReduce易于编程
  • 良好的扩展性
  • 高容错性
  • 适合PB级以上数据集的离线处理

3.1 MapReduce 的缺点

  • 不适合实时计算
  • 不适合流式计算
  • 不适合DAG计算

四、MapReduce 编程模型

4.1 MapReduce 分布式计算原理

4.2 MapReduce 编程模型

4.3 剖析 MapReduce 编程模型

4.3.1 问题思路分析

  • 业务场景
    有大量的文件,每个文件里面存储的都是单词。
  • 我们的任务
    统计所有文件中每个单词出现的次数。
  • 解决思路
    先分别统计出每个文件中各个单词出现的次数,然后再累加不同文件中同一个单词出现次数。

4.3.2 数据分割

4.3.3 数据处理

4.3.4 数据局部合并

4.3.5 数据聚合

4.4 MapReduce 运行机制

五、MapReduce 容错

  • 任务容错

    当application master被告知一个任务尝试失败后,它将重新调度该任务的执行。application "master会试图避免在之前失败过的NodeManager上重新调度该任务。此外,如果一个任务失败数超过4次,该任务将不会再尝试执行。

  • application master 容错

    application master向ResourceManager发送周期性的心跳,当application master失败时ResourceManager将检测到该失败,并在一个新的容器中重新启动一个application master实例。对于新的application master来说,它将使用作业历史记录来恢复失败的应用程序所运行任务的状态,所以这些任务不需要重新运行。

  • NodeManager 容错

    如果一个NodeManager节点因中断或运行缓慢而失败,那么它就会停止向ResourceManager发送心跳信息(或者发送频率很低)。默认情况下,如果ResourceManager在10分钟内没有收到一个心跳信息,它将会通知停止发送心跳信息的NodeManager,并且将其从自己的节点池中移除。

    在出现故障的NodeManager节点上运行的任何任务或application master,将会按前面描述的机制进行恢复。另外,对于出现故障的NodeManager节点,那么曾经在其上运行且成功完成的map任务,如果属于未完成的作业,那么application master会安排它们重新运行。这是因为它们的中间输出结果是存放在故障NodeManager节点所在的本地文件系统中,reduce任务可能无法访问。

  • ResourceManager 容错

    ResourceManager 出现故障是比较严重的,因为没有 ResourceManager,作业和任务容器将无法启动。在默认的配置中,ResorrceManager 是一个单点故障,因为在机器出现故障时,所有的作业都会失败并且不能被恢复。

    为了实现高可用(HA),有必要以一种 active-standby 配置模式运行一对 ResourceManager 如果 active ResourceManager出现故障,则 standby ResourceManager 可以很快的接管,并且对客户端来说没有明显的中断现象。

六、 suffle 过程

相关推荐
@insist1231 小时前
信息系统管理工程师-数字化转型核心知识与应试要点
大数据·软考·信管·软件水平考试·信息系统管理工程师
步步精BBJconn2 小时前
从GPU服务器到数据中心:AI服务器高压连接器的应用与发展趋势
大数据·运维·服务器·人工智能·科技·物联网
大模型码小白12 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
延凡科技14 小时前
多场景落地复盘:端边云架构无人机智能巡检系统设计与实践
大数据·数据结构·人工智能·科技·架构·无人机·能源
ifenxi爱分析15 小时前
爱分析最新报告解读:AI数据基础设施与数据中台的区别
大数据·人工智能
品牌全球行16 小时前
共商共建共享 链接数字未来——“一带一路数字新城(深圳)会客厅筹备办”揭牌仪式在深圳隆重举行
大数据·人工智能
数智化管理手记18 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
ApacheSeaTunnel19 小时前
Apache SeaTunnel AI CLI Benchmark:7 款大模型、100 个 ETL 任务实测,谁真正能跑起来?
大数据·ai·开源·大模型·数据集成·cli·seatunnel·技术分享·数据同步
电商API_1800790524719 小时前
企业ERP进销存场景|京东商品详情接口自动同步方案|凭证鉴权批量调用技术实操
大数据·运维·人工智能·爬虫·数据挖掘·网络爬虫
小稻穗19 小时前
市场调研样本选型坐标系:2026六家国内样本平台能力横向校验
大数据·运维·数据分析