HADOOP2.0(HDFS2)以及YARN设计的亮点

YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResouceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManger申请资源,并要求NodeManager启动可以占用一定资源的任务。

Hadoop2.0 YARN包含以下实体,可以看图:

ResourceManager(RM):全局的资源管理器,负责整个系统的资源管理和分配

NodeManager(NM):每个节点上的资源和任务管理器,定时向RM汇报本节点上的资源使用情况和各个Container的运行状态,接收并处理来自AM的Container启动/停止等各种请求

ApplicationMaster(AM):用户提交的每个应用程序均包含一个AM,主要功能与RM调度器协商以获取资源,进一步分配给内部的任务,与NM通信启动/停止任务,监控任务的运行状态

Container:是YARN中资源的抽象,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。

结合YARN架构图描述一个资源请求的流程:

  1. NodeManager向ResourceManager注册各机器资源

  2. 客户端向ResouceManager提交作业

  3. ApplicationMaster向ResouceManager请求资源,并判断是否满足需要

  4. ResouceManager以Container的形式将资源反馈给ApplicationMaster

  5. Container作为资源单元保证作业隔离运行

关于Hadoop2.0的安装可以参考这篇博文,Hadoop
2.0安装以及不停集群加datanode
,下面对HADOOP2.0(HDFS2)以及YARN设计的亮点进行总结:

  • 1.针对Hadoop1.0中单个NameNode制约HDFS的扩展性问题,Hadoop2.0提出了HDFS
    Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展。对于运行中NameNode的单点故障,通过NameNode热备方案(NameNode
    HA)实现。

  • 2.在Hadoop1.0中,JobTracker由资源管理和作业控制两部分组成,对JobTracker赋予的功能过多而造成负载过重,从设计角度上看,Hadoop未能够将资源管理相关功能与应用程序相关功能非开,造成Hadoop1.0难以支持多种计算框架。而YARN通过将资源管理和应用程序管理两部分分剥离开,分别由ResouceManager和ApplicationMaster负责,其中,ResouceManager专管资源管理和调度,而ApplicationMaster则负责与具体应用程序相关的任务切分、任务调度和容错等。

  • 3.在ResouceManager中,ClientRMService和AdminService两个服务分别负责处理来自普通用户和管理员的请求,需要注意的是,之所以让这两类请求通过两个不同的通信通道发送个ResourceManager,是因为要避免普通用户请求过多导致管理员请求被阻塞而迟迟得不到处理。

  • 4.JDK中自带一个RPC框架-RMI,之所以不直接使用该框架,主要是考虑到RPC是Hadoop最底层最核心的模块之一,保证其轻量级、高性能和可控性显得尤为重要,而RMI重量级过大且用户可控之处太少(如网络连接、超时和缓冲等均难以定制或者修改),Doug
    Cutting在Hadoop最初设计时就是这样描述Hadoop RPC设计动机的。

  • 5.总体来说Hadoop2.0中的HDFS和YARN均采用了基于共享存储的HA解决方案,即Active
    Master不断将信息写入一个共享存储系统,而Standby Master则不断读取这些信息,以与Active
    Master的内存信息保持同步。当需要主备切换时,选中的Standby Master需先保证信息完全同步后,再将自己的角色切换至Active
    Master。目前而言,常用的共享存储系统有以下几个:Zookeeper,NFS,HDFS,Bookeeper和QJM。HA架构均分为手动模式和自动模式,其中手动模式是指由管理员通过命令进行主备切换,这通常用于服务升级;自动模式可降低运维成本,但存在潜在危险。

  • 6.Zookeeper设计的目的并不是数据存储,但他的确可以安全可靠地存储少量数据以解决分布式环境下多个服务之间的数据共享问题。

  • 7.解决HA问题需考虑以下几个问题:脑裂和切换对外透明。脑裂是指在主备切换时,由于切换不彻底或其他原因,导致客户端和Slave误以为出现两个Active
    Master,最终使得整个集群处于混乱状态。通常采用隔离机制解决脑裂问题。为了保证整个切换是对外透明的,Hadoop应保证所有客户端和Slave能自动重定向到新的Active
    Master上,通常是通过若干次尝试连接旧Master不成功后,再重新尝试新Master完成的,整个过程有一定的延时,可以自行设置相关参数。

  • 8.ResourceManger并不会保存已经分配给
    每个ApplicationMaster的资源信息和每个NodeManage的资源使用信息,这些均可通过相应的心跳汇报机制重构出来。正因为如此,ResouceManager
    HA的实现是非常轻量的。

  • 9.Hadoop调度器支持多个队列多用户,这种调度器允许管理员按照应用需求对用户或者应用程序分组,并为不同的分组分配不同的资源量,同时通过添加各种约束防止单个用户或者应用程序独占资源,进而能够满足各种QoS需求,典型的代表是Yahoo!的Capacity
    Scheduler和Facebook的Fair Scheduler。

  • 10.YARN的内存资源隔离,默认采用线程监控的方案,提供灵活的控制策略,具体可以看这篇博文,Hadoop YARN资源隔离技术

参考:

《Hadoop技术内幕--深入解析YARN架构设计与实现原理》

《大规模分布式系统架构与设计实践》

HADOOP2.0(HDFS2)以及YARN设计的亮点,布布扣,bubuko.com

时间: 2024-12-22 12:39:51

HADOOP2.0(HDFS2)以及YARN设计的亮点的相关文章

Hadoop2.0构成之YARN

YARN基本构成 Master/Slave组成,1个ResourceManager对应多个NodeManager: YARN由Client.ResourceManager.NodeManager.ApplicationMaster组成: Client向ResourceManager提交任务.杀死任务等: ApplicationMaster由对应的应用程序完成:每个应用程序对应一个ApplicationMaster,ApplicationMaster向ResourceManager申请资源用于在N

Hadoop2.0安装之YARN

YARN(Yet Another Resource Negotiator)是Hadoop2.0集群中负责资源管理和调度以及监控运行在它上面的各种应用,是hadoop2.0中的核心,它类似于一个分布式操作系统,通过它的api编写的应用可以跑在它上面,支持临时和常驻的应用,集群的资源可以得到最大限度的共享.资源是指CPU,内存,硬盘,带宽等可以量化的东西. Hadoop1.0和2.0架构对比 1.0的绝对核心是mapreduce,只能跑mapreduce的任务:2.0的绝对核心是YARN,除了可以跑

大话Hadoop1.0、Hadoop2.0与Yarn平台

2016年12月14日21:37:29 Author:张明阳 博文链接:http://blog.csdn.net/a2011480169/article/details/53647012 近来这几天一直在忙于Hbase的实验,也没有太静下心来沉淀自己,今天打算写一篇关于Hadoop1.0.Hadoop2.0与Yarn的博文,从整体上把握三者之间的联系,博客内容如有问题,欢迎留言指正!OK,进入本文正题-- 在开始接触Hadoop的时候,也许大家对于Hadoop是下面的一个概念:Hadoop由两部

Hadoop2.0源码包简介

Hadoop2.0源码包简介 1.解压源码包: 2.目录结构: hadoop-common-project:Hadoop基础库所在目录,如RPC.Metrics.Counter等.包含了其它所有模块可能会用到的基础库. hadoop-mapreduce-project:MapReduce框架的实现,在第一代MR即MRv1中,MapReduce由编程模型(map/reduce).调度系统(JobTracker和TaskTracker)和数据处理引擎(MapTask和ReduceTask)等模块组成

Hadoop2.0、YARN技术大数据视频教程

基于Hadoop2.0.YARN技术的大数据高阶应用实战(Hadoop2.0\YARN\MapReduce\数据挖掘\项目实战)课程分类:Hadoop适合人群:高级课时数量:81课时用到技术:基于协同过滤的推荐系统.基于HBase的爬虫调度库涉及项目:银行人民币查询系统.HBase编程实践及案例分析咨询qq:1840215592 课程内容简介本课程基于<基于Greenplum Hadoop分布式平台的大数据解决方案>Hadoop部分的基础课程来进行扩展延伸,主要内容分为以下四部分:一.对Had

Hadoop2.0构成之HDFS2.0

HDFS2.0之HA 主备NameNode: 1.主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换: 2.主NameNode的信息发生变化后,会将信息写到共享数据存储系统中让备NameNode合并到自己的内存中: 3.所有DataNode同时向两个NameNode发送心跳信息(块信息): 两种切换方式: 1.手动切换:通过命令实现主备之间的切换,可以用于HDFS升级等场合: 2.自动切换:基于Zookeeper实现: Zookeeper Failover

搭建hadoop2.6.0 HA及YARN HA

以前用hadoop2.2.0只搭建了hadoop的高可用,但在hadoop2.2.0中始终没有完成YARN HA的搭建,直接下载了hadoop最新稳定版本2.6.0完成了YARN HA及HADOOP HA的搭建流程,没有仔细看hadoop的官方文档,貌似hadoop2.2.0不支持YARN HA,如果说错了谢谢指正呀,下面总结一下我的搭建流程: 首先完成虚拟机的搭建: 机器名 IP 安装软件 运行进程 namenode1 192.168.3.161 hadoop NameNode.DFSZKFa

hadoop2.0 配置yarn成功

很久不写 BO-KE 了,来一篇吧,记住这个成功的一刻,把几个主要文件贴出来: core-site.xml: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <config

hadoop2.0中yarn的运行原理

Yarn的简单介绍 我们知道在离线大数据处理领域中,hadoop是目前无可厚非的处理架构,到目前为止hadoop已经有三个大版本,每个版本下都有架构方面的调整. 在hadoop1.0中有一些弊端,比如hdfs元数据信息保存的单节点故障,并且任务计算框架只能使用mapreduce,而且造成了任务管理器的压力过大,因此在hadoop2.0中加入了yarn资源统一管理的机制,不仅解决了元数据单节点故障问题(双namenode)而且实现了元数据的实时热备(共享机制JournalNode),在hdfs和m