1、目标
(1)掌握YARN的运行角色和角色之间的关系
(2)理解使用容器做资源分配和隔离
2、核心架构
(1)和HDFS架构的对比
HDFS架构:
YARN架构:(主从模式)
(2)角色解释
ResourceManager:整个集群的资源调度者,负责协调各个程序所需要的资源。
NodeManager:单个服务器的资源调度者,负责调整单个服务器上的资源供给应用程序使用。
在这里,我们可以将ResourceManager理解为一个项目的总经理,将NodeManager理解为每一个模块的负责人。
3、运行机制
(1)分配
在2(2)中,我们提到,如果某个程序需要申请12G的内存空间,那个它就会向ResourceManager提出申请,ResourceManager收到申请之后,会向每个NodeManager发送命令(此处假设有三台NodeManager),会要求每一台NodeManager准备4G内存。
此处存在一个问题,每台NodeMangager是如何精准的划分出4G内存空间呢?
(2)解决方案
在这里,我们将每台NodeManager开辟出来的空间称之为“容器”。
容器:英文名为Container,假设在运行程序时,ResourceManager要求A服务器开辟4G空间供程序使用,那么该服务器的NodeManager会先在该服务器中划分出4G的空间内存,然后将划分出来的内存空间交给程序使用。(注:容器是虚拟化的相关装置,后面会讲解。)
在这里,划分出来的4G空间被称为“容器”,每个容器的大小上限是不变的,也就意味着该程序在此服务器内,只能使用4G大小的内存空间,如果超出了4G,就需要另外再次申请。