乐趣区

关于大数据:Hadoop-入门笔记核心组件-YARN

作者:幻好

起源:恒生 LIGHT 云社区

根本概述

Apache YARN (Yet Another Resource Negotiator) 是 Hadoop 中的资源管理和作业调度零碎,在 Hadoop 2.x 时才被引入。

用户能够将各种服务框架部署在 YARN 上,由 YARN 进行对立地治理和资源分配。

Yarn 在 Hadoop2.x 时才被推出,在 Hadoop1.x 时,次要由 MapReduce 进行资源分配,因为思考到如果 MapReduce 在计算中挂掉了,那么资源调度也将进行工作,于是在新版本中将资源调度这部分性能剥来到,才有 Yarn。

外围架构

Yarn 的次要架构分为四个局部:ResourceManager、NodeManager、ApplicationMaster、Container

ResourceManager

  • ResourceManager 通常在独立的部署在一台机器作为利用运行,集群中只有一个,负责整个零碎的资源管理和调配。
  • ResourceManager 次要由两个组件形成:调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)。可能依据应用程序优先级、队列容量、数据地位等信息,做出决策,通过平安的、共享的、多租户的形式制订调配策略,调度集群资源。

NodeManager

  • NodeManager 是 YARN 集群中的每个具体节点的管理者。次要负责该节点内所有容器的生命周期的治理,监督资源和跟踪节点衰弱。
  • NodeManager 次要用来解决来自 ResourceManagerApplicationMaster 的命令。

一个节点启动时,它会向 ResourceManager 进行注册并推送可用资源信息。在运行期,通过 NodeManager 和 ResourceManager 协同工作,这些信息会一直被更新并保障整个集群施展出最佳状态。

ApplicationMaster

  • 在用户提交一个应用程序时,YARN 会启动一个轻量级的过程ApplicationMaster
  • ApplicationMaster 负责协调来自ResourceManager 的资源,并通过NodeManager 监督容器内资源的应用状况,同时还负责工作的监控与容错。

ApplicationMaster 将能将数据进行拆分,并依据利用的运行状态动静匹配资源需要,可能监控跟踪工作状态和进度,报告利用的进度信息。

Container

  • Container是 YARN 中的资源形象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
  • ApplicationMasterResourceManager 申请资源时,ResourceManagerApplicationMaster 返回的资源是用Container 示意的。
  • YARN 会为每个任务分配一个Container,该工作只能应用该Container 中形容的资源。
  • ApplicationMaster 可在Container 内运行任何类型的工作。

工作流程

YARN 利用提交的整个工作流程:

  • 首先客户端提交工作到 YARN 上,ResourceManager 提交利用并申请一个ApplicationMaster 实例;
  • ResourceManager 会抉择一个可运行的NodeManager,并在Container 中启动并运行ApplicationMaster 实例;
  • 启动中的ApplicationMasterResourceManager 注册本人,启动胜利后与 RM 放弃心跳。
  • ApplicationMasterResourceManager 发送申请,获取须要的Container 资源;
  • ApplicationMaster 通过获取到的Container 资源执行分布式计算。
  • 利用运行完结后,ApplicationMasterResourceManager 登记本人,并容许属于它的container 被发出。

总结

Yarn 次要在 Hadoop 体系中负责服务资源的调度调配,可能最大限度的利用机器资源,高效调配,达到资源利用的最大化。

退出移动版