【Hadoop】YARN简介(YARN产生的技术需求/YARN的基本架构)

YARN产生的技术需求

YARN是Hadoop v2.0 引入的核心组件。YARN 从某种那个意义上来说应该算做是一个云操作系统,它负责集群的资源管理任务调度,在 YARN 之上可以开发各类的应用程序,例如批处理 MapReduce, 内存处理 Spark, 流式处理 Storm 等等。这些应用可以同时利用 Hadoop 集群的计算能力和丰富的数据存储模型,共享同一个 Hadoop 集群和驻留在集群上的数据。此外,这些新的框架还可以利用 YARN 的资源管理器,提供新的应用管理器实现。

  • 直接源于MapReduce v1.0在几个方面的缺陷:
    • 扩展性受限
    • 单点故障
    • 难以支持MR之外的计算框架
  • 多计算框架各自为战,数据共享困难,比如
    • MR:离线计算框架
    • Storm:实时计算框架
    • Spark:内存计算框架

YARN支持多种计算框架


YARN的基本架构

我们可以把 YARN 视为 Hadoop 生态系统的大脑或者说云操作系统。


ResourceManager

ResourceManager(RM)是一个全局的资源管理器 ,负责整个系统的资源管理和分配

  • 在接收到处理请求时,它相应地将部分请求传递 给相应的Node Manager节点管理器,在那里进行实际的处理。
  • RM优化集群利用率,例如根据容量保证、公平性和 SLA 等各种限制,始终保持所有资源处于使用状态

它主要由两个组件构成:调度器 (Scheduler)和应用程序管理器(Applications Manager)

  • 调度器(Scheduler)

    • 调度器负责将资源分配 给各种正在运行的应用程序。而资源分配单位用一个抽象概念"资源容器 "(Resource Container, 简称 Container)来表示。container下面再具体介绍

    • 调度器是纯调度程序。意味着不会对应用程序执行任何状态监控。也不负责重新启动因执行失败或硬件故障导致的失败任务

    • 它有一个可插拔的策略插件,负责在各种应用之间划分集群资源。有两个这样的插件: Capacity Scheduler 和 Fair Scheduler

  • 应用程序管理器(Applications Manager)

    • 它负责管理整个系统中所有应用程序。包括括应用程序提交、与调度器协商资源以启动 Application Master、监控 Application Master 运行状态并在失败时重新启动它等

NodeManager

  • 它负责处理 Hadoop 集群中的各个节点,并 管理给定节点上的用户作业和工作流
  • 它向资源管理器注册并发送带有节点健康状态的心跳。
  • 它的主要目标是管理资源管理器分配给它的应用程序容器。
  • 它与资源管理器保持同步。
  • 应用程序主机通过向节点管理器发送容器启动上下文 (CLC) 来从节点管理器请求分配的容器,其中包含应用程序运行所需的一切。节点管理器创建请求的容器进程并启动它。
  • 监控单个容器的资源使用情况(内存、CPU)。
  • 执行日志管理。
  • 它还按照资源管理器的指示杀死容器。

ApplicationMaster

  • 每个应用有一个,负责应用程序的管理。它是一个特定于框架的实体
  • 它的任务是从资源管理器协商资源,并与节点管理器一起执行和监控组件任务。
  • 一旦启动,它会定期向资源管理器发送心跳以确认其健康状况并更新其资源需求记录。

Container

  • 它是单个节点上的物理资源的集合,例如 RAM、CPU 内核和磁盘。
  • 当 AM 向 RM 申请资源时,RM 为 AM 返回的资源便是用 Container 表示。YARN 会为每个任务分配一个 Container, 且该任务只能使用该 Container 中描述的资源。

HDFS与YARN

hdfs有自己的框架,yarn也有自己的框架,但这两个框架是紧密结合的,比如namenode上启动RM、DataNode上启动NM

相关推荐
liruiqiang0528 分钟前
DDD - 整洁架构
分布式·微服务·架构
先睡1 小时前
Spring MVC配置文件
数据仓库·hive·hadoop
m0_748256342 小时前
重学SpringBoot3-整合 Elasticsearch 8.x (一)客户端方式
大数据·elasticsearch·jenkins
nangonghen3 小时前
flink operator v1.10部署flink v1.19.2
大数据·flink·flink operator
莳花微语3 小时前
使用MyCAT实现分布式MySQL双主架构
分布式·mysql·架构
大数据追光猿12 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
ITPUB-微风12 小时前
Service Mesh在爱奇艺的落地实践:架构、运维与扩展
运维·架构·service_mesh
人类群星闪耀时13 小时前
物联网与大数据:揭秘万物互联的新纪元
大数据·物联网·struts
大腕先生17 小时前
微服务环境搭建&架构介绍(附超清图解&源代码)
微服务·云原生·架构
文军的烹饪实验室18 小时前
处理器架构、单片机、芯片、光刻机之间的关系
单片机·嵌入式硬件·架构