Hadoop Yarn源码阅读系列(一)Yarn架构

Yarn的基本思想是将JobTracker的两大主要职能:资源管理、作业调度/监控拆分为两个独立的进程:一个全局的ResourceManager和与每个应用对应的ApplicationMaster(AM)。ResourceManager和每个节点的NodeManager(NM)组成了全新的通用操作系统,以分布式的方式管理应用程序。

ResourceManager拥有为系统中所有应用的资源分配的决定权。对应于每个应用程序的ApplicationMaster是框架相关的,负责与ResourceManager协商资源,以及与NodeManager协同工作来执行和监控各个任务。

ResourceManager有一个可插拔的调度器组件--Scheduler,负责为运行中的各种应用分配资源,分配时会受到容量,队列及其他因素的制约。Scheduler是一个纯粹的调度器,不负责应用程序的监控和状态跟踪,也不保证在应用程序失败或者硬件失败的情况下对Task的重启。Scheduler基于应用程序的资源需求来执行其调度功能,使用了叫做资源Container的抽象概念,其中包括了多种资源维度,如内存,CPU,磁盘以及网络。

NodeManager是与每台机器对应的从属进程(Salve),负责启动应用程序的Container,监控他们的资源使用情况(CPU、内存、磁盘和网络),并且报告给ResourceManager。

每个应用程序的ApplicationMaster负责与Scheduler协商合适的Container,跟踪应用程序的状态,以及监控他们的进度。从系统的角度讲,ApplicationMaster也是以一个普通的Container的身份运行。

architecture

在新的YARN系统下,MapReduce的一个关键实现细节是,在不做大的修改下重用现有的MapReduce框架。这是确保与现有MapReduce应用和用户兼容性的重要步骤。

猜你喜欢

转载自blog.csdn.net/twj0823/article/details/84344350