yarn结构-2.9.0

YARN最基本的想法就是把资源管理和任务调度/监听功能分成独立的守护进程。这个想法就是有一个全局的ResourceManager(RM)和每个应用独自的ApplicationMaster(AM)。一个应用既可以是一个单独的任务,也可以是一组任务。
RM和NodeManager组成了数据计算框架。RM具有在系统所有程序间分配调度资源的最高权限。NodeManager是每个机器的框架客户端,对containers负责、监控它们 的资源使用情况(cpu,memory,disk,network)并把这些报告给RM。
RM有两个主要的组件:Scheduler和ApplicationManager。
Scheduler负责根据相同的能力、队列等限制来分配资源给各种正在运行的应用。Scheduler是完全的调度员,它不监控也不跟踪应用的状态。同时它也不保障重启失败的任务,不管失败是由于应用错误还是硬件错误造成的。Scheduler执行调度功能基于应用的资源需求,也基于资源Container(包括memory,cpu,disk,network等)的抽象计算。
scheduler有一中插件策略,负责把集群资源分配被各种队列、应用等。当前的scheduler比如CapacityScheduler和FairScheduler就是这样的插件样例。
ApplicationManager负责接收任务提交,和特定AM中执行应用的第一个container沟通,提供在任务失败时重启AM container的服务。每个应用的AM负责和Scheduler合适的资源container沟通、跟踪状态和进程。
hadoop-2.x的hadoop维护的API和之前的稳定版本(hadoop-1.x)兼容。这意味着所有的MapReduce任务只需要重新编译无需变化就可以在YARN上运行。
YARN通过预订系统支持资源预订功能,预订系统允许用户指定资源随时间变化的和临时的约束条件的概况,预订资源来保证重要任务的预执行。预订系统跟踪资源,对预订管理控制,动态地指示优先的调度来保证预订得到执行。
为了扩展YARN超过几千节点,YARN通过YARN Federation支持Federation。Federation允许把多个YARN集群透明地连接起来,看起来像一个单一的大集群。这可以用来获得较大的扩展,允许多个独立的集群完成较大的任务,用于有跨集群能力的租户。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/z949061740/article/details/78605135