一、Yarn产生 : 作为Hadoop的一个子项目,Yarn是一个通用的用于运行分布式应用的资源管理器。
1、Mapreduce的缺陷和问题:
由于jobtracker会保存信息在内存中,使用的粗粒度的锁,所以可扩展有瓶颈
2、Yarn要保持现有的mapduce的向后兼容性
3、Yarn : 资源调度器
基本思想: 将jobTracker两个主要的功能分离成单独的组件,一个全局的ResourceManager和每个应用对应的 ApplicationMaster
Yarn 的组件
ResourceManager : 资源管理器 , 一个纯粹的调度器
ApplicationManager: 应用程序管理器,负责与ResourceManager协商资源,并和NodeManager协同工作来执行和监控Container以及它们的资源消耗。
资源模型: 一个应用可以通过ApplicationMaster请求非常具体的资源
ResouceRequest 和 Container
一个应用程序通过ApplicationMaster请求特定的ResourceRequest来满足资源需求
scheduler 会分配一个Container 来响应资源请求
Container是一种资源分配形式,为应用程序授予在特定主机上使用资源
ApplicationMaster取走Container,并交给NodeManager。NodeManager会利用相应的资源来启动Container的任务进程。