
RM(ResourceManager):将资源分配给各个应用(单独的mr作业或DAG作业)。
1)调度器(scheuler)(根据各个应用所需的资源,将集群的资源进行分配、调度)。而分配的资源的容器就是Resource Container,将内存,CPU,磁盘,网络等资源封装在一起。
2)应用管理器 (ApplicationManager)(交互)获取合适的container,并跟踪状态,监控进度。
AM(ApplicationMaster):与RM协商获取应用所需资源,与NM合作,完成执行和监控task的任务。
NM(NodeManager):(执行+监控)启动container,监控资源并汇报给scheuler。
YARN的工作流程,一个应用程序的运行过程如下:
步骤1:用户将应用程序提交到ResourceManager上;
步骤2:ResourceManager为应用程序ApplicationMaster申请资源,并与某个NodeManager通信,以启动ApplicationMaster;
步骤3:ApplicationMaster与ResourceManager通信,为内部要执行的任务申请资源,一旦得到资源后,将于NodeManager通信,以启动对应的任务。
步骤4:所有任务运行完成后,ApplicationMaster向ResourceManager注销,整个应用程序运行结束。
网友评论