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 过程

相关推荐
Easy_API14 小时前
2.8万亿参数,编程反超GPT-6 Astra:Kimi K3.1 Pro把开源模型推到了哪一步
大数据·人工智能·gpt·深度学习
GlobalInfo14 小时前
2026年机器人多指灵巧手市场分析报告——涵盖行业调查、趋势分析与发展前景
大数据·人工智能·microsoft·微服务·机器人
微订校园外卖平台16 小时前
校园外卖平台选模板还是定制:架构、数据流与验收清单
大数据·架构·外卖系统·本地生活·微订
Eloudy17 小时前
Qwen2.5-14B-Instruct-AWQ 模型文件结构分析
大数据·elasticsearch·搜索引擎
重生之高冷汉堡包20 小时前
跨境电商运营团队如何安全交接店铺账号?多账号权限管理指南
大数据
玩AI的奶茶20 小时前
MiniMax H3 出 30 秒长片:显存账、拼接法和一次的成本
大数据·人工智能·ai·gpu算力·算力租赁
SelectDB20 小时前
Doris Arrow Flight SQL 高速读取协议实战:与 Snowflake 客户端取数链路对照
大数据·数据库·数据分析
爱签AI电子合同21 小时前
电子合同全维度实测与选型指南
大数据·人工智能
AI办公探索者21 小时前
从SaaS到本地部署:大模型推理成本优化与8888元私有化方案的技术解析
大数据·人工智能
做运维的阿瑞21 小时前
云项目可观测性与成本治理:告警、日志、Dashboard 与预算标签
大数据·云原生·云计算·terraform