版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012292754/article/details/86479419
1 ResourceManager
- 全局的资源管理器,整个集群只有一个
- 功能
- 处理客户端请求
- 启动,监控 ApplicationMaster
- 监控 NodeManager
- 资源分配与调度
2 NodeManager
- 整个集群有多个,负责单节点资源管理和使用;
- 功能
- 单个节点上资源管理和任务管理
- 处理来自 ResourceManager 的命令
- 处理来自 ApplicationMaster 的命令
- NodeManager 管理抽象容器,这些容器代表着可供一个特定程序使用的针对每个节点的资源;
- 定时向 RM 汇报本节点上的资源使用情况和各个 Container 的运行状态;
3 Application Master
- 管理一个在 YARN 内运行的应用程序的每个实例;
- 功能
- 数据切分
- 为应用程序申请资源,并进一步分配给内部任务
- 任务监控与容错
- 负责协调来自 RM 的资源,并通过 NM 监视容器的执行和资源使用(CPU,RAM)
4 Container
- YARN 中资源的抽象,封装某个节点上多维度资源(RAM,CPU,网络),当 AM 向 RM 申请资源时,RM 向 AM 返回的资源是用 Container 表示;
- YARN 会为每个任务分配一个 Container, 这个任务只能使用该 Conatiner 中描述的资源;
- 功能
- 对任务运行环境的抽象
- 描述一系列信息
- 任务运行资源(RAM,CPU)
- 任务启动命令
- 任务运行环境
5 YARN 资源管理
- 资源调度和资源隔离是YARN 作为一个资源管理系统,最基础的2个功能。资源调度由 ResourceManager 负责,资源隔离由各个 NamaManager 实现;
- 资源一般只 RAM,CPU,IO。 YARN 支持 RAM 和 CPU 两种资源的调度;
- 内存资源决定任务的生死,如果内存不够没任务可能运行失败;CPU 决定任务运行的快慢;
5.1 YARN 资源配置
https://hadoop.apache.org/docs/r2.6.0/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
http://node1:8088
5.2 YARN 资源管理
YARN 允许用户配置每个节点上可用的物理内存资源。可用,因为一个节点上的内存会被若干个服务共享,比如一部分给 YARN,一部分给 HDFS, 一部分 HBase,YARN 配置的只是自己可以使用的。
yarn.nodemanager.resource.memory-mb
, 表示该节点上YARN 可使用的 RAM 总量(默认8 G)。注意如果机器的节点RAM 小于这个值,则需要减小这个值,而 YARN 不会智能的探测节点的物理内存总量yarn.nodemanager.vmem-pmem-ratio
,任务每使用 1 MB 内存,最多可使用的虚拟内存量,默认2.1