yarn 架构组件功能详解

一.YARN服务组件

  • YARN 总体上仍是Master/Slave 结构 在整个资源管理框架中ResourceManager 为master ,NodeManager 为Slave 。
  • ResourceManager 负责 对各个NodeManager 上的资源进行同一的管理和调度
  • 当用户提交一个应用程序时,需要一个用以跟踪和管理这个程序的服务
  • ApplicationMaster 它负责向ResourceManager 申请资源,并要求Node Manager 启动可以占用一定资源的任务
  • 由于不同的ApplicationMaster 被分布到不同的节点上,因此他们之间不会互相影响

二.ResourceManager

全局资源管理器整个集群只有一个,负责集群资源的同一管理和调度分配。
功能:

  • 处理客户端请求
  • 启动/监控 ApplicationMaster
  • 监控NodeManager
  • 资源调度与分配

三.NodeManager

  • . 整个集群有多个负责单节点资源管理和使用
  • . 功能:
    • 单个节点上的资源管理和任务管理
    • 处理来自ResourceManager 的命令
    • 处理来自ApplicationMaster 的命令
  • NodeManager 管理抽象容器这些容器代表着可供一个特定应用程序使用的针对每个节点的资源
  • 定时地向RM汇报本节点的资源使用情况和各个Container 的运行状态

四. ApplicationMaster

  • 管理一个在YARN内运行的应用程序的每个实例
  • 功能:
    1. 数据切分
    2. 为应用程序申请资源
    3. 任务监督和容错
  • 负责协调来自ResourceManager 的资源 ,开通过NodeManager 监视容器的执行和资源的使用(CPU,内存等等的资源分配)

五. Container

  • YARN 中的资源抽象,封装某个节点上的多维度资源,入内存,CPU,磁盘,网络等当AM向RM 申请资源时,RM向AM 返回的资源便是用container 表示的
  • YARN 会为 每个任务分配一个Container ,且该任务 只能使用该Container 中描述的资源,
  • 功能
    1. 对任务运行环境的抽象
    2. 描述一系列 信息
    3. 任务运行资源(节点,内存,CPU)
    4. 任务启动命令
    5. 任务运行环境

欢迎关注,更多惊喜等着你

你可能感兴趣的:(YARN,hadoop)