一.关于YARN
YARN是(Yet Another Resource Negotaitor)Hadoop的集群资源管理系统。
1.1 YARN的产生背景
- 因为YARN是从MapReduce1.x(hadoop-0.23)中拆分出来的,叫做MapReduce 2.0 (MRv2)或者YARN。
- mapreduce1.x的结构是master/slave : 分别对应的是JobTracker和TaskTracker。其中JobTracker是单点的、压力大,扩展难,也仅仅只能够支持mapreduce作业。YARN是具有通用性的,其它分布式计算框架也可以跑在YARN上,如Spark,Tez,Strom等等。
- 资源利用率与运营成本:YARN把所有的计算框架运行在一个集群中,共享一个集群的资源,按需分配,资源利用率高。
MapReduce1.x的架构
在YARN上跑的分布式计算框架:
二.YARN的工作机制
YARN有两个主要有全局的ResourceManager(RM) 和每个应用都有的 ApplicationManager(AM)。同样是master/salve结构,分别对应:ResourceManager(RM) 和 NodeManager(NM)。RM和每个节点的从属节点NM构成数据计算框架。RM是在系统中的所有应用程序之间仲裁资源的最终权威。每个应用程序AM实际上是一个特定于框架的库,它的任务是与RM协商资源,并与NM一起执行和监视任务。
2.1 YARN的架构
2.1.1 MapReduce1.x和YARN在组成上的比较
MapReduce1.x中,Jobtrack同时负责作业调度(与之等价的是ResourceManager)和任务监控,重启失败或迟缓的任务,记录任务流水(与之等价的是Application Master),记录已完成作业的作业历史(与之等价的是时间轴服务器Timeline Server)。Tasktracker负责任务执行(与之等价的是节点管理器NM)。每个Tasktracker有配置有固定长度的slot,是静态分配的,而YARN中NodeManager管理一个资源池,是按需分配的。
MapReduce1.x | YARN |
---|---|
Jobtracker< |