Hadoop——Yarn基础架构

Hadoop------Yarn基础架构

Hadoop YARN(Yet Another Resource Negotiator)是Apache Hadoop生态系统中的一个子项目,它是用于集群资源管理的框架,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序

YARN的基础架构主要由以下几个组件组成:

  1. ResourceManager(资源管理器)

    • ResourceManager(RM)是整个集群的主节点,负责集群资源的统一管理和调度。它包括两个主要的组件:Scheduler(调度器)和ApplicationManager(应用程序管理器)。
    • Scheduler负责根据应用程序的需求,将集群中的资源分配给不同的应用程序
    • ApplicationManager负责接收来自客户端的应用程序提交请求,并与Scheduler协作以获取资源,并为应用程序分配相应的资源容器。
  2. NodeManager(节点管理器)

    • NodeManager(NM)运行在集群中的每个节点上,负责管理该节点上的资源,并与ResourceManager通信以报告节点的健康状况和可用资源。
    • NodeManager负责启动和监控容器(Container),容器是YARN中的资源分配单元,用于运行应用程序的任务或进程。
  3. ApplicationMaster(应用程序主管)

    • 每个由YARN调度的应用程序都有一个对应的ApplicationMaster(AM),它负责协调应用程序的执行,并与ResourceManager进行通信以请求资源和监控应用程序的状态。
    • ApplicationMaster在启动时会向ResourceManager注册自己,并在执行期间负责管理应用程序的资源需求和任务执行情况。
  4. Container(容器)

    • 容器是YARN中的资源分配单元,它封装了应用程序所需的资源,包括CPU、内存和磁盘等。
    • ResourceManager通过NodeManager启动和监控容器的执行,NodeManager负责在本地启动和管理容器内的任务或进程。

示例

假设用户提交了一个MapReduce作业到Hadoop集群,并且该集群上已经运行了YARN。

  1. 用户提交作业

    用户通过Hadoop集群的客户端工具(如hadoop jar命令)提交了一个MapReduce作业,该作业包含了需要处理的数据、Mapper函数、Reducer函数等信息。

  2. 作业提交到ResourceManager

    当作业提交时,ApplicationManager接收到了这个作业的提交请求。ApplicationManager向ResourceManager注册一个新的应用程序,并向ResourceManager提供作业的资源需求。

  3. ResourceManager分配资源

    ResourceManager接收到作业的资源需求后,调度器(Scheduler)开始分配资源。调度器根据集群中各节点的资源情况和作业的需求,决定在哪些节点上启动作业的任务。它为作业分配了一系列容器(Containers)来运行Mapper和Reducer任务。

  4. 容器启动

    ResourceManager通过与各个NodeManager通信,在选择的节点上启动了容器。每个容器中运行一个作业任务,其中包括Mapper任务和Reducer任务。

  5. 任务执行

    在容器中启动的Mapper任务会读取输入数据,并按照用户指定的Mapper函数进行处理;Reducer任务会接收来自Mapper的中间结果,并按照用户指定的Reducer函数进行处理。这些任务在各自的容器中并行执行。

  6. 监控和状态更新

    各个NodeManager会定期向ResourceManager发送心跳信息,报告节点的健康状况和可用资源。同时,各个容器会向对应的NodeManager发送进度和状态更新信息。ResourceManager和NodeManager根据这些信息来监控作业的执行情况,并在需要时进行调度和容错处理。

  7. 作业完成

    当所有的Mapper和Reducer任务都成功完成时,作业的执行状态被更新为完成,并向用户返回执行结果。ApplicationManager收到作业完成的通知后,将作业的执行结果返回给用户。

相关推荐
ratbag67201311 小时前
当环保遇上大数据:生态环境大数据技术专业的课程侧重哪些领域?
大数据
计算机编程小央姐13 小时前
跟上大数据时代步伐:食物营养数据可视化分析系统技术前沿解析
大数据·hadoop·信息可视化·spark·django·课程设计·食物
ajax_beijing13 小时前
zookeeper是啥
分布式·zookeeper·云原生
智数研析社13 小时前
9120 部 TMDb 高分电影数据集 | 7 列全维度指标 (评分 / 热度 / 剧情)+API 权威源 | 电影趋势分析 / 推荐系统 / NLP 建模用
大数据·人工智能·python·深度学习·数据分析·数据集·数据清洗
潘达斯奈基~14 小时前
《大数据之路1》笔记2:数据模型
大数据·笔记
寻星探路14 小时前
数据库造神计划第六天---增删改查(CRUD)(2)
java·大数据·数据库
翰林小院16 小时前
【大数据专栏】流式处理框架-Apache Fink
大数据·flink
孟意昶16 小时前
Spark专题-第一部分:Spark 核心概述(2)-Spark 应用核心组件剖析
大数据·spark·big data
IT学长编程17 小时前
计算机毕业设计 基于Hadoop的健康饮食推荐系统的设计与实现 Java 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
java·大数据·hadoop·毕业设计·课程设计·推荐算法·毕业论文
AAA修煤气灶刘哥18 小时前
Kafka 入门不踩坑!从概念到搭环境,后端 er 看完就能用
大数据·后端·kafka