hadoop2.x中引入了yarn,它的核心思想就是将MRv1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现。
ResourceManager: 负责整个集群的资源管理和调度。
ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等。
yarn可以使多个计算框架接入到系统架构中,如MapReduce、Spark、flink等。
yarn资源管理任务调度流程
- 客户端上提交app
- 发送请求到ResourceManager
- ResourceManager收到请求后会随机在集群中的一台NodeManager中启动AppclicationMaster
- AppclicationMaster启动状态,这时会向RM请求一批Container用于启动Executor
- RM返回给AM一批可以执行程序的NM节点
- AM会去对应的NM节点上执行Excutor
- 执行完成后向客户端发送执行结果