Yarn资源调度工作原理解析
由于Yarn良好的兼容性和扩展性,目前可以支持大部分数据引擎,所以了解Yarn的资源调度原理很有必要,Yarn主要由四个重要角色组成:
ResourceManager:顾名思义资源管理器,主要负责资源管理和调度,ResourceManager主要由两个组件构成:ApplicationManager,主要负责两类工作:1.管理监控各个系统的应用,包括启动Applicaiton Master,监控Applicaiton Master运行状态(为了容错)2.跟踪分配给Application Master的进度和状态。Scheduler,主要负责分配Container给Applicaiton Master,分配算法有多种(如公平调度等等)可以根据需求不同选择适合的调度策略。
NodeManager:节点管理器,主要负责维护本节点的资源情况和任务管理。首先NodeManager需要定期向ResourceManager汇报本节点资源使用情况,以便ResourceManager,根据资源使用情况,来分配资源给Application Master,其次,需要管理Applicaiton Master提交来的task,比如接收Applicaiton Master 启动或停止task的请求(启动和停止有NodeManager的组件ContainersLanuncher完成)。
ApplicaitonMaster:用户提交的每个program都会对应一个ApplicationMaster,主要负责监控应用,任务容错(重启失败的task)等。它同时会和ResourceManager和NodeManager有交互,向ResourceMa