简介
YARN(Yet Another Resource Negotiator),下一代MapReduce框架。该框架已经不再是一个传统的MapReduce框架,是一个通用的运行时框架,用户可以编写自己的计算框架,在该运行环境中运行。
MapReduce v1的不足
YARN的改进
(1) 提交任何支持YARN的Application
(1) 持续跟踪活着的NodeManager和可用资源
(2) 给Application和Task分配合适的资源
(3) 监视所有的Application Master
(1) 以Container的形式提供计算资源
(2) 管理运行在Container中的进程
(1) 协调此Application所拥有的所有Task的运行
(2) 请求合适的Container运行Task
(1) 可以运行不同类型的任务(包括Application Master)
(2) 有不同的大小属性,例如,内存、CPU
综上,Yarn将之前JobTracker监控和协调Tasks的运行状况的责任扔给了ApplicationMaster,而ResourceManager中有一个ApplicationsMasters组件,这个组件来监测所有ApplicationMaster的运行状况。
重构根本的思想是将JobTracker两个主要的功能,资源管理、任务调度和任务监控,分离成单独的组件。就是将JobTracker的功能分成ResourceManager、ApplicationsMasters、ApplicationMaster,而将ApplicationMaster剥离JobTracker。TaskTracker分成NodeManager和Container,并将运行任务的Container剥离TaskTracker。