yarn 的基本介绍和产生背景
YARN 是 Hadoop2 引入的通用的资源管理和任务调度的平台,可以在 YARN 上运行 MapReduce、Tez、Spark 等多种计算框架,只要计算框架实现了 YARN 所定义的接口,都可以运行在这套通用的 Hadoop 资源管理和任务调度平台上。
Hadoop 1.0 是由 HDFS 和 MapReduce V1 组成的,YARN 出现之前是 MapReduce V1 来负责资源管理和任务调度,MapReduce V1 由 JobTracker 和 TaskTracker 两部分组成。
MapReduce V1 有如下缺点
1) 扩展性差
在 MapReduce V1 中,JobTracker 同时负责资源管理和任务调度,而 JobTracker 只有一个节点,所以 JobTracker 成为了制约系统性能的一个瓶颈,制约了 Hadoop 平台的扩展性。
2) 可靠性低
MapReduce V1 中 JobTracker 存在单点故障问题,所以可靠性低。
3) 资源利用率低
MapReduce V1 采用了基于槽位的资源分配模型,槽位是一种粗粒度的资源划分单位。
一是通常情况下为一个 job 分配的槽位不会被全部利用。
二是一个 MapReduce 任务的 Map 阶段和 Reduce 阶段会划分了固定的槽位,并且不可以共用,很多时候一种类型的槽位资源很紧张而另外一种类型的槽位很空闲,导致资源利用率低。
4) 不支持多种计算框架
MapReduce V1 这种资源管理和任务调度方式只适合 MapReduce 这种计算框架,而 MapReduce 这种离线计算框架很多时候不能满足应用需求
yarn 的优点:
1) 支持多种计算框架
YARN 是通用的资源管理和任务调度平台,只要实现了 YARN 的接口的计算框架都可以运行在 YARN 上
2) 资源利用率高
多种计算框架可以共用一套集群资源,让资源充分利用起来,提高了利用率。
3) 运维成本低
避免一个框架一个集群的模式,YARN 降低了集群的运维成本。
4) 数据可共享 :
共享集群模式可以让多种框架共享数据和硬件资源,减少数据移动带来的成本
评论