YARN会管理集群中所有机器的可用计算资源. 基于这些资源YARN会调度应用(比如MapReduce)发来的资源请求, 然后YARN会通过分配Container来给每个应用提供处理能力, Container是YARN中处理能力的基本单元, 是对内存, CPU等的封装.
yarn-site.xml
- 一个Container资源(内存)请求的最低单位
yarn.scheduler.minimum-allocation-mb 1024 - 一个Container资源(内存)请求的最大单位
yarn.scheduler.maximum-allocation-mb 8192 - 一个Container资源(CPU)请求的最低单位
yarn.scheduler.minimum-allocation-vcores 1 - 一个Container资源(CPU)请求的最大单位
yarn.scheduler.maximum-allocation-vcores 32 - 一个NodeManager机器上的内存总量
yarn.nodemanager.resource.memory-mb 8192 - 一个NodeManager机器上的CPU虚拟核数总量(和真实的CPU线程为比例关系,影响算力)
yarn.nodemanager.resource.cpu-vcores 8 - NodeManager的物理内存检查开关
yarn.nodemanager.pmem-check-enabled true - NodeManager的虚拟内存检查开关(存储在硬盘)
yarn.nodemanager.vmem-check-enabled true - NodeManager的虚拟内存对物理内存的比率
yarn.nodemanager.vmem-pmem-ratio 2.1