hadoop3.x yarn介绍

介绍

Yarn是一个 资源调度平台,负责为 MapReduce程序 提供 服务器运算资源,相当于一个分布式的操作系统平台,而 MapReduce 等运算程序则相当于运行于操作系统之上的应用程序。

架构

YARN是主从架构,有三大组件:

  • ResourceManager(RM)

  • NodeManager(NM)

  • ApplicationMaster(AM)

其他:

  • Container

注意:

  • client 可以有多个
  • 集群可以运行多个 ApplicationMaster
  • 每个 NodeManager 上可以有多个 Container

ResourceManager(RM)

进程,是集群中的主角色。

整个集群资源的管理者,管理内存、CPU等。
接收客户端提交的作业,通过 NM 分配、管理 各个机器 上的计算资源

NodeManager(NM)

进程,是集群中的从角色

每台PC服务器上都要部署一个
计算资源的管理者
根据 RM 指令,启动 Container 容器,监视容器的资源使用情况
向 RM 汇报 资源使用情况

ApplicationMaster(AM)

单个任务运行的管理者,应用程序内的 老大
向 RM 申请资源( Container )
与 NM 通信,启动 map task
等所有 map task 运行完毕后,向 RM 申请资源( Container ),运行 reduce task
监督程序的执行情况

实现类: MrAppMaster

Container

容器,资源的抽象,相当于 VMware 虚拟机,封装了任务运行所需要的资源,如:内存(占用 1G-8G)、CPU、磁盘、网络等。执行结束后,可自动释放资源

关键交互流程

  1. 客户端提交任务给 ResourceManager
  2. ApplicationMaster向 ResourceManager 申请 内存、CPU 资源
  3. mapreduce作业状态汇报:Container(map task、reduce task) 向 Container(ApplicationMaster),汇报进度,是否完成、错误等
  4. 节点状态汇报:NodeManager 向 ResourceManager 汇报进度

原文出处:/show_1IX28n29YLBN.html