Yarn架构(Master-Slave)
进程角色:
resourceManager(Master):任务调度和集群资源管理。
nodeManager(Slave):单个节点的资源管理。
applicationMaster:为任务程序申请资源,任务程序运行状态监控、错误恢复。
container:对运行环境资源的抽象,是资源分配和使用的单元,包括cpu、内存、环境变量等资源。
client:发起任务的请求。
任务提交流程 :
用户将作业提交到client,client将任务提交给resourceManager,resourceManager选取一个nodeManager来启动一个applicationMaster,这个applicationMaster根据当前作业反过来向resourceManager申请计算资源,resourceManager将可用资源以一个个container的形式返给applicationMaster,applicationMaster根据各container的位置等属性,将计算任务发送到相应nodeManager,由nodeManager分配container并执行,每个container向applicationMaster同步任务执行状态,整个作业所涉及的每个container中的任务都全部执行完毕后,applicationMaster将结果写入目的地,同时applicationMaster将作业完毕的消息反馈给resourceManager,resourceManager将本次作业申请的container资源全部回收,供后续作业申请。