Hadoop 1.0与2.0 的差异:都为集群环境 Hadoop2.0引入YARN 可以引用其他的应用
Apache Hadoop YARN 是一种新的Hadoop 资源管理器,它本身是一个通用资源管理系统,可为上层应用提供统一的资源
管理器和调度,它的引入为集群在利用率,资源统一管理和数据共享等方面带来巨大好处。
YARN 最初是为了修复Mapreduce 实现的明显不足而开发的,并对可伸缩性(支持一万个节点和二十万个内核的集群),
可靠性和集群利用率进行提升。YARN 实现这些需求的方式是,把JOB Traceker 的两个主要功能(资源管理和作业调度/监控)
分成两个独立的服务程序——全局的资源管理器(RM) 和针对每个应用的Master(AM),这样一来,一个应用要么是传统
意义上的Mapreduce 任务,要么是任务有向无环图(DAG)
从某种意义上来说,它是一个云操作系统,它负责集群的资源管理,在YARN 之上可以开发各类的应用软件,例如批处理Mapreduce,内存管理Spark,流式处理Storm等,这些应用可以同时利用Hadoop 集群的计算能力和数据存储模型,共享同
一个Hadoop 集群和驻留在集群上的数据。此外新的框架还可利用YARN 的资源管理器,提供新的应用管理器实现。
yarn 框架及运行机制
从业界使用分布式系统的变化趋势和Hadoop 框架的长远发展来看,Mapreduce 的JobTracer/TaskTracer 机制需要大规模的
调整来修复它在可扩展性,内存消耗,线程模型,可靠性和性能上的缺陷。导致于对原框架做出改变的难度越来越大。
为从根本上解决旧的Mapreduce 框架的性能瓶颈,从0.23.0 版本开始,Hadoop的Mapreduce 框架完全重构,发生了根本
变化,新的Hadoop Mapreduce 框架命名为Mapreduce V2 或者叫YARN ,框架如下:
YARN的核心思想:将JobTracker 和TaskTacker 进行分离
1.一个全局的资源管理器ResourceManager
2.Resource Manager的每个节点代理Node Manager
3.代表每个应用的Aplication Master
4.每一个Aplication Master 拥有多个Container 并在Node Manager 上运行
YARN 调度框架:
双层调度架构:RM AM
基于资源预留的保留策略:
资源不够时,会Task 预留,直到资源充足,与“all or nothing” 策略不同
YARN 运行过程剖析:
1.ResourceManager 存在单点故障 双击正在基于zookeeper 实现HA
2.NodeManager 失败后,RM 将失败任务告诉对应的AM,AM决定如何处理失败的任务
3.Application Master 失败后,有RM负责重启 AM 需要处理内部任务的容错问题
RM/Application 会保存完成的Task 重启无需重新运行
YARN 产生的技术需求:
直接源于MRV1在几方面的缺陷:(扩展性受限,单点故障,难以支持MR以外的计算)
多计算框架各自为战,数据共享困难:(MR:离线计算框架 Storm:实时计算框架 spark:内存计算框架)
MR 实时性要求不高,对整批量分析