hadoop3.x yarn介绍 作者:马育民 • 2021-03-30 20:45 • 阅读:10464 # 介绍 Yarn是一个 **资源调度平台**,负责为 **MapReduce程序** 提供 **服务器运算资源**,相当于一个分布式的操作系统平台,而 `MapReduce` 等运算程序则相当于运行于操作系统之上的应用程序。 # 架构 YARN是主从架构,有三大组件: - `ResourceManager`(RM) - `NodeManager`(NM) - `ApplicationMaster`(AM) 其他: - `Container` **注意:** - client 可以有多个 - 集群可以运行多个 ApplicationMaster - 每个 `NodeManager` 上可以有多个 `Container` [![](/upload/pic/hadoop/QQ20211031092816.png)](/upload/pic/hadoop/QQ20211031092816.png) ### 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` 汇报进度 原文出处:http://malaoshi.top/show_1IX28n29YLBN.html