YARN架构
MapReduce在Hadoop0.23的时候做了很大的改动,我们称之为MRv2或者YARN。
MRv2的主要观点是把JobTracker,资源管理,任务调度执行功能拆分成几个独立的进程。也就是说有一个全局的RM和AM,一个应用程序是一个独立的job或者一组job。
ResourceManager ,每个从节点,NodeManager?组成了一个数据计算框架,ResourceManager?负责协调整个系统的所有应用程序的资源。
每个应用程序的ApplicationMaster实际上是一个负责跟ResourceManager?协商资源,和NodeManager一起执行和监控任务的框架。
ResourceManager?拥有两大主要组件:Scheduler and ApplicationsManager。
Scheduler负责给所有的运行的应用程序分配资源,受制于容量和队列等。Scheduler仅仅是调度而不关心应用程序的状态监控跟踪。也不保证失败任务和应用失败以及硬件失败。仅仅关心应用程序的资源需求,是一个抽象的资源容器,包括内存,cpu,硬盘,网络等元素。第一个版本中只支持内存。
Scheduler是插件化的负责在各种队列和应用程序直接隔离集群资源,现在的MR调度机制包括CapacityScheduler 和FairScheduler都是插件化的。
CapacityScheduler支持层次队列,支持共享集群资源。
ApplicationsManager 负责接收任务提交,协调容器去执行应用尤其ApplicationMaster