【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

相关推荐
拓端研究室TRL2 小时前
【梯度提升专题】XGBoost、Adaboost、CatBoost预测合集:抗乳腺癌药物优化、信贷风控、比特币应用|附数据代码...
大数据
黄焖鸡能干四碗2 小时前
信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)
大数据·人工智能·软件需求·设计规范·规格说明书
想进大厂的小王2 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识
redis·分布式·后端·spring cloud·微服务·架构
编码小袁2 小时前
探索数据科学与大数据技术专业本科生的广阔就业前景
大数据
WeeJot嵌入式3 小时前
大数据治理:确保数据的可持续性和价值
大数据
阿伟*rui3 小时前
认识微服务,微服务的拆分,服务治理(nacos注册中心,远程调用)
微服务·架构·firefox
ZHOU西口4 小时前
微服务实战系列之玩转Docker(十八)
分布式·docker·云原生·架构·数据安全·etcd·rbac
zmd-zk4 小时前
kafka+zookeeper的搭建
大数据·分布式·zookeeper·中间件·kafka
激流丶4 小时前
【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
java·大数据·kafka·topic
测试界的酸菜鱼4 小时前
Python 大数据展示屏实例
大数据·开发语言·python