- YARN的基本思想是将资源管理和调度及监控功能从MapReduce分离出来,用独立的后台进程实现。
这个想法需要有一个全局的资源管理器(ResourceManager),每个 应用还要有一个应用主管(ApplicationMaster)。
应用可以是一个单独MapReduce作业,或者是一个作业的有向无环图(DAG)。
资源管理器和节点管理器(NodeManager)构成了分布式数据计算框架。
资源管理器是系统中所有应用资源分配的最终仲裁者。
节点管理器是框架中每个工作节点的代理,监控节点CPU、内存、磁盘、网络等资源的使用,并且报告给资源管理器。
每个应用对应的ApplicationMaster实际上是框架中一组特定的库,负责从资源管理器协调资源,并和节点管理器一起工作,共同执行和监控任务。
资源管理器有两个主要组件:调度器和应用管理器。
调度器负责给多个正在运行的应用分配资源,比如对每个应用所能使用的资源做限制,按一定规则排队等。
调度 器只负责资源分配,它不监控或跟踪应用的状态。
而且,当任务因为应用的错误或硬件问题而失败后,调度器不保证能重启它们。
调度器根据应用对资源的需求执行其调 度功能,这基于一个叫做资源容器的抽象概念。
资源容器由内存、CPU、磁盘、网络等元素构成。
调度器使用一个可插拔的调度策略,将集群资源分配给多个应用。
当前 支持的调度器如CapacityScheduler和FairScheduler就是可插拔调度器的例子。
- 应用管理器负责接收应用提交的作业,协调执行特定应用所需的资源容器,并在ApplicationMaster容器失败时提供重启服务。
每个应用对应一个ApplicationMaster,它向 调度器请求适当的资源容器,并跟踪应用的状态和资源使用情况。
H
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)