admin 管理员组

文章数量: 887016

Yarn产生的历史背景

Yarn产生的历史背景

Hadoop是apache基金会的一个项目, 目的是开发一个开源软件,用于可靠的可扩展的,分布式的计算。 
Hadoop不是一个软件,而是一个软件库,hadoop作为一个软件库,提供了一个框架,可以以分布式的方式,在集群的多台主机之间,使用简单的编程模型来处理大量的数据集。Hadoop被设计成可以从单主机扩展到数千台主机,并且支持本地计算和存储。 
Hadoop本身被设计成可以在应用层面检测和处理底层的硬件故障,以实现高可用性,而不是由底层硬件来完成故障的检查。

1.Hadoop中的主要项目:

a.Hadoop Common(从0.20开始讲Core项目改名为Common项目) 
为Hadoop的其他项目提供一些常用的工具,包括系统配置工具Configuration、远程过程调用RPC、序列化机制和Hadoop抽象文件系统FileSystem 
b.Hadoop Distributed File System (HDFS) 
Hadoop体系中数据存储管理的基础,实现了对应用成语大吞吐量的访问。 
c.Hadoop YARN 
作业调度和集群资源管理的一个框架 
d.Hadoop MapReduce 
基于YARN的一个系统,用于并行处理大量的数据集。

2.Hadoop演进 的四大阶段

阶段0:Ad Hoc集群时代

A.Ad hoc集群出现之前,用户使用Hadoop与普通的桌面应用方式类似 
a) 几个节点上创建集群 
b) 载入数据至HDFS,运行MapReduce任务,得到结果 
c) 拆掉集群 
B. 原因: 
a) 没有在HDFS持久存储数据的需求 
b) 没有共享数据和计算结果的动机. 
C.Yahoo实现了共享的HDFS实例,迫切要求实现共享的计算平台.

阶段1:Hadoop onDemand

A. HOD是一个能在商用硬件的共享集群上提供和管理Hadoop MapReduce和HDFS实例的系统 
B. 使用Torque资源管理器和集群调度器(Maui)分配集群 
C. 并且在分配的节点上启动MapReduce和HDFS的守护进程相应用户数据和应用请求 
D. 典型的HOD会话:分配一个集群、在其上运行Hadoop作业,释放集群 E. HOD的特点及优势 
a) HOD为每一个作业建立一个新的集群,当开发人员测试新特性时,用户可以使用稳定的Hadoop版本。 
b) Hadoop社区每3个月发布一个修订版,为保证软件的正常升级,要求HOD具有相当的灵活性 
F. HOD的限制:任何时刻集群的每一个节点只属于一个用户的Hadoop集群 G. HOD的缺点: a) 第一个缺点 
i. 资源管理器Torque不知道HDFS块的分布,分配集群节点是无法考虑到本地化 
ii. 所以Hadoop中的某些作业,由于Torque得不到足够的信息,大多数读操作会从远程主机处获取 
iii. 虽然做了一些改进,但是收获不大,最终Yahoo停用了HOD 
b) 第二个缺点: 
i. HOD单个作业或者作业之间的阶段集群的规模不能调整,所以集群在容量的主要部分在大多数时间是空闲的,等待后续轻量阶段的完成 
ii. 极端但是常见的例子:运行在一个节点上的Reduce任务可能会导致数百节点组成的集群无法回收而处于空闲状态

阶段2:共享计算集群的黎明

A. 共享计算集群MapReduce 
a) 特性: 
i. 中央Jobtracker守护进程 
ii. JobTracker内存管理 
iii. 已完成作业的管理 
iv. 中央调度器:Capacity(容量)调度器和Fair(公平)调度器 
v. 数据的回复和升级 
vi. 单个节点的隔离 
vii. 身份认证和访问控制 
B. 共享计算集群MapReduce和与之协同工作的共享HDFS实例是Hadoop1.x版本的主要架构 
C. 共享计算架构包括两大核心组件: 
a) JobTracker:一个中央守护进程,负责管理集群上的所有作业,索然和HOD中为单用户作业的进程一样,到时多了一些额外的功能 
b) TaskTracker:系统的从进程,根据JobTracker的指令来执行任务,和HOD中的守护进程也是一样的,不同的是TaskTracker负责运行来自所有用户的作业。 
D. MapReduce的问题 
a) 问题一 
i. 可扩展性瓶颈 
ii. 可靠性和可用性 
iii. MapReduce编程模型的滥用 
b) 问题二 
i. 资源模型,map槽和Reduce槽是固定的,但是两种任务未必能以相同的速率完成

阶段3:YARN的出现

A. 以前遇到的问题迫切要求新模型的诞生 
B. 新的架构和相关实现尽量重用现有框架的代码、相似的操作模式,并未现有的MapReduce用户提供相同的接口 
四大阶段都必须满足的要求 
要求1:可扩展性,可以平滑地扩展至数万节点和并发的应用 
要求2:可维护性,保证集群软件的升级与用户应用程序完全解耦 
要求3:多租户,需要支持在同一个集群中多个租户并存,同时支持多个租户之间细粒度地共享单个节点 
要求4:位置感知,将计算移动到数据所在位置 
要求5:高集群使用率,实现底层物理资源的高使用率 
要求6:安全和可审计的操作,继续以安全的、可审计的方式使用集群资源 
要求7:可靠性和可用性,举要高度可靠的用户交互,病支持高可用性 
要求8:对编程模型多样性的支持,支持多样化的编程模型,并需要演进为不仅仅以MapReduce为中心 
需求9:灵活的资源模型,支持各个节点的动态资源配置以及灵活的资源模型 
需求10:向后兼容,保持现有MapReduce应用程序的向后兼容

本文标签: Yarn产生的历史背景