Yarn的实现原理|当前简讯

Yarn作为分布式集群的资源调度框架,它的出现伴随着Hadoop的发展,使Ha

Yarn作为分布式集群的资源调度框架,它的出现伴随着Hadoop的发展,使Hadoop从一个单一的大数据计算引擎,成为一个集存储、计算、资源管理为一体的完整大数据平台,进而发展出自己的生态体系,成为大数据的代名词。


(资料图片)

Yarn的发展过程

所以在我们开始聊Yarn的实现原理前,有必要看看Yarn发展的过程,这对你理解Yarn的原理以及为什么被称为资源调度框架很有帮助。我们在学习的MapReduce的架构时,MapReduce应用程序的启动过程,最重要的就是要把MapReduce程序分发到大数据集群的服务器上,在Hadoop 1中,这个过程主要是通过TaskTracker和JobTracker通信来完成。

这个方案有什么缺点吗?

这种架构方案的主要缺点是, 服务器集群资源调度管理和MapReduce执行过程耦合在一起,如果想在当前集群中运行其他计算任务,比如Spark或者Storm,就无法统一使用集群中的资源了

在Hadoop早期的时候,大数据技术就只有Hadoop一家,这个缺点并不明显。但随着大数据技术的发展,各种新的计算框架不断出现,我们不可能为每一种计算框架部署一个服务器集群,而且就算能部署新集群,数据还是在原来集群的HDFS上。所以我们需要把MapReduce的资源管理和计算框架分开,这也是Hadoop 2最主要的变化,就是将Yarn从MapReduce中分离出来,成为一个独立的资源调度框架。

Yarn的架构组成

Yarn是“Yet Another Resource Negotiator”的缩写,字面意思就是“另一种资源调度器”。事实上,在Hadoop社区决定将资源管理从Hadoop 1中分离出来,独立开发Yarn的时候,业界已经有一些大数据资源管理产品了,比如Mesos等,所以Yarn的开发者索性管自己的产品叫“另一种资源调度器”。这种命名方法并不鲜见,曾经名噪一时的Java项目编译工具Ant就是“Another Neat Tool”的缩写,意思是“另一种整理工具”。

下图是Yarn的架构。

从图上看,Yarn包括两个部分:一个是资源管理器(Resource Manager),一个是节点管理器(Node Manager)。这也是Yarn的两种主要进程:ResourceManager进程负责整个集群的资源调度管理,通常部署在独立的服务器上;NodeManager进程负责具体服务器上的资源和任务管理,在集群的每一台计算服务器上都会启动,基本上跟HDFS的DataNode进程一起出现。

具体说来,资源管理器又包括两个主要组件:调度器和应用程序管理器。

调度器其实就是一个资源分配算法,根据应用程序(Client)提交的资源申请和当前服务器集群的资源状况进行资源分配。Yarn内置了几种资源调度算法,包括Fair Scheduler、Capacity Scheduler等,你也可以开发自己的资源调度算法供Yarn调用。

Yarn进行资源分配的单位是容器(Container),每个容器包含了一定量的内存、CPU等计算资源,默认配置下,每个容器包含一个CPU核心。容器由NodeManager进程启动和管理,NodeManger进程会监控本节点上容器的运行状况并向ResourceManger进程汇报。

应用程序管理器负责应用程序的提交、监控应用程序运行状态等。应用程序启动后需要在集群中运行一个ApplicationMaster,ApplicationMaster也需要运行在容器里面。每个应用程序启动后都会先启动自己的ApplicationMaster,由ApplicationMaster根据应用程序的资源需求进一步向ResourceManager进程申请容器资源,得到容器以后就会分发自己的应用程序代码到容器上启动,进而开始分布式计算。

工作流程

我们以一个MapReduce程序为例,来看一下Yarn的整个工作流程。

1.我们向Yarn提交应用程序,包括MapReduce ApplicationMaster、我们的MapReduce程序,以及MapReduce Application启动命令。

进程和NodeManager进程通信,根据集群资源,为用户程序分配第一个容器,并将MapReduce ApplicationMaster分发到这个容器上面,并在容器里面启动MapReduce ApplicationMaster。

ApplicationMaster启动后立即向ResourceManager进程注册,并为自己的应用程序申请容器资源。

ApplicationMaster申请到需要的容器后,立即和相应的NodeManager进程通信,将用户MapReduce程序分发到NodeManager进程所在服务器,并在容器中运行,运行的就是Map或者Reduce任务。

或者Reduce任务在运行期和MapReduce ApplicationMaster通信,汇报自己的运行状态,如果运行结束,MapReduce ApplicationMaster向ResourceManager进程注销并释放所有的容器资源。

MapReduce如果想在Yarn上运行,就需要开发遵循Yarn规范的MapReduce ApplicationMaster,相应地,其他大数据计算框架也可以开发遵循Yarn规范的ApplicationMaster,这样在一个Yarn集群中就可以同时并发执行各种不同的大数据计算框架,实现资源的统一调度管理。

Yarn 的设计原则

Yarn框架在架构设计上遵循一个重要的设计原则叫“ 依赖倒转原则”,依赖倒转原则是 高层模块不能依赖低层模块,它们应该共同依赖一个抽象,这个抽象由高层模块定义,由低层模块实现。

所谓高层模块和低层模块的划分,简单说来就是在调用链上,处于前面的是高层,后面的是低层。我们以典型的Java Web应用举例,用户请求在到达服务器以后,最先处理用户请求的是Java Web容器,比如Tomcat、Jetty这些,通过监听80端口,把HTTP二进制流封装成Request对象;然后是Spring MVC框架,把Request对象里的用户参数提取出来,根据请求的URL分发给相应的Model对象处理;再然后就是我们的应用程序,负责处理用户请求,具体来看,还会分成服务层、数据持久层等。

在这个例子中,Tomcat相对于Spring MVC就是高层模块,Spring MVC相对于我们的应用程序也算是高层模块。我们看到虽然Tomcat会调用Spring MVC,因为Tomcat要把Request交给Spring MVC处理,但是Tomcat并没有依赖Spring MVC,Tomcat的代码里不可能有任何一行关于Spring MVC的代码。

那么,Tomcat如何做到不依赖Spring MVC,却可以调用Spring MVC?如果你不了解框架的一般设计方法,这里还是会感到有点小小的神奇是不是?

秘诀就是Tomcat和Spring MVC都依赖J2EE规范,Spring MVC实现了J2EE规范的HttpServlet抽象类,即DispatcherServlet,并配置在中。这样,Tomcat就可以调用DispatcherServlet处理用户发来的请求。

同样Spring MVC也不需要依赖我们写的Java代码,而是通过依赖Spring MVC的配置文件或者Annotation这样的抽象,来调用我们的Java代码。

所以,Tomcat或者Spring MVC都可以称作是框架,它们都遵循依赖倒转原则。

现在我们再回到MapReduce和Yarn。实现MapReduce编程接口、遵循MapReduce编程规范就可以被MapReduce框架调用,在分布式集群中计算大规模数据;实现了Yarn的接口规范,比如Hadoop 2的MapReduce,就可以被Yarn调度管理,统一安排服务器资源。所以说,MapReduce和Yarn都是框架。

相反地,HDFS就不是框架,使用HDFS就是直接调用HDFS提供的API接口,HDFS作为底层模块被直接依赖。

总结

Yarn作为一个大数据资源调度框架,调度的是大数据计算引擎本身。它不像MapReduce或Spark编程,每个大数据应用开发者都需要根据需求开发自己的MapReduce程序或者Spark程序。而现在主流的大数据计算引擎所使用的Yarn模块,也早已被这些计算引擎的开发者做出来供我们使用了。

标签:

相关阅读

六代中医传人张喜海:守正中医创新治骨...

张医生,我们是专门过来找您看病的张院长,你看看我的病还能治吗?治骨病,找张喜海医生 纷杂的诊室...

2019-12-17 更新

庆70华诞 迎民族盛会——新阶层 新担...

拼搏砥砺七十载,大展宏图喜露颜。7月26日,由中华网河南频道主办,河南省委统战部新的社会阶层人士统战工作处...

2019-07-28 更新

河南首家无人机表演编队亮相 夜空中上...

【导语】河南地图、少林功夫、司母戊鼎、甲骨文、卢舍那大佛、鲸鱼、金字塔、雪花……200架无人机编队在夜空中...

2019-07-15 更新

Yarn的实现原理|当前简讯

Yarn作为分布式集群的资源调度框架,它的出现伴随着Hadoop的发展,使Ha

2023-06-30 更新

天天微头条丨中国航母基地是大连还是旅...

1、据说,目前正在海南岛修建大型军用码头,个人认为,第一个航母舰队

2023-06-30 更新

华东理工大学和上海大学哪个好知乎(华...

今天小红来为大家带来的是华东理工大学和上海大学哪个好知乎,华东理工

2023-06-30 更新

环球最新:盲人提灯笼读后感(盲人提灯笼)

来为大家解答以上问题。盲人提灯笼读后感,盲人提灯笼这个很多人还不知

2023-06-30 更新

武冈市地图最新_武冈市地图

1、湖南省西南部。2、和广西交界处(新宁)往东北方向。3、是湘西南五

2023-06-29 更新

要闻速递:七七四个好习惯_qq三国华雄在哪

1、进汜水关后先上去 然后一直往后面走建议你一路过去把那些弩兵杀掉就

2023-06-29 更新

中国残疾人联合会网上投诉_中国残疾人联...

1、一样可以工作,但要面对现实。2、工作的途径有去福利企业,或者社会

2023-06-29 更新

翠屏山_关于翠屏山介绍-当前滚动

1、翠屏山,四川省级森林公园。2、位于宜宾市城区西部,海拔504 5米。3

2023-06-29 更新

问美公司成果亮相“世界中医药大会第七...

问美公司成果亮相“世界中医药大会第七届夏季峰会”---“世界中医药大

2023-06-29 更新

新能源汽车购置税减免政策延续,车企续...

再将眼光放长远一些,这次新能源购置税减免政策延续,一方面利好新能源

2023-06-29 更新

电车续航要到多少公里,才能真正取代油车?

里程焦虑可以说是新能源汽车的一大通病,尤其碰上节假日出行的时候,这

2023-06-29 更新

一言难尽!4S店总监17万提自家车发现“...

近日湖北某地的杨先生向记者求助,在4s店他花了17万在买了一辆雪佛兰之

2023-06-29 更新

天溯计量创业板IPO审核状态更新为“新受...

机会报从深圳证券交易所网站获悉,天溯计量创业板IPO审核状态更新为“

2023-06-29 更新

当前动态:whatisthematter怎么回答_whatisthematter

1、tiredout,填tired。本文到此分享完毕,希望对大家有所帮助。

2023-06-29 更新

【全球独家】莎士比亚的天分完整版_莎士...

1、是他的文学风度 女孩子都喜欢有内涵的人 莎士比亚同样是能够笼络人

2023-06-29 更新

山东乐陵:盯准产业育才 打造“产改”高地

全市先后有240家企业建立研发机构,创建市级及以上平台131个,其中国家

2023-06-29 更新

环球即时看!明朝电视剧有哪些_明朝电视剧

1、强烈推荐《大明王朝1566》历史真实写照剧情和演员一流国内最好电视

2023-06-29 更新

金兰股份全资子公司拟向银行申请2000万...

金兰股份全资子公司拟向银行申请2000万授信股东蔺向光及其配偶闫淑红提

2023-06-29 更新

热҈҈҈热҈҈҈热҈҈҈热҈҈҈!40...

全国多地气温高达35摄氏度,甚至直飚40摄氏度,又到了“地上煎鸡蛋”的

2023-06-29 更新

动态焦点:电动汽车如何“更”绿色?

如何在电动汽车研发、制造、使用等环节,推进全链路的绿色低碳化发展,

2023-06-29 更新

20.99万元起:小鹏G6轿跑SUV发布,百公...

IT之家6月29日消息,小鹏今日发布G6轿跑SUV,新车共有五种款式,售价20

2023-06-29 更新

长安“六眼飞鱼”萌动出场 梁静茹的心...

沈阳站演唱会当日,在长安“六眼飞鱼”带领下,幸运用户强势集结为梁静

2023-06-29 更新

吉利推出了一款全新的纯电动冷藏车——...

热烈祝贺!近日,,这可是新能源二代升级产品哦!那么这款车有哪些厉害

2023-06-29 更新

吴京全身缝针达100多2021年阜阳五中一本...

1、47岁吴京缝针100多针,这种敬业精神自然值得我们高度称赞,现在很多

2023-06-29 更新

南京青奥会女足_南京青奥会时间

1、南京青奥会是2014年。2、2014年南京青年奥林匹克运动会,又称南京青

2023-06-29 更新

天天热头条丨大苏小苏_大苏

1、小苏和大苏的区别是:价格不同、口感不同等。2、小苏售价为22元一包

2023-06-29 更新

鹿鞭的功效与作用_鹿鞭怎么吃好

1、鹿鞭是鹿科动物的外生殖器,具有补肾壮阳填精、活血通乳的作用。临

2023-06-29 更新

2023-06-29 18:27陕西高速公路最新路况...

在我们出行前一定要把自己所去的地方的路况弄清楚,避免在出行过程当中

2023-06-29 更新

第十四届夏季达沃斯论坛闭幕

新华社天津6月29日电(记者张宇琪)世界经济论坛第十四届新领军者年会

2023-06-29 更新

【消防安全】@所有新能源车主,这份消防...

2023年2月8日11时22分,呼和浩特市金桥开发区燃气热力公司门口的一辆电

2023-06-29 更新

新闻频道

社会

财经频道