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