Yarn是什么及其产生背景?为什么要使用Yarn?

大数据技术 潘老师 3年前 (2021-02-24) 1986 ℃ (0) 扫码查看

1.YARN什么?

YARN:(Yet Another Resources Negotiator): Hadoop2.0以后版本提供的job调度和分布式资源管理框架(运算资源调度系统)

2.YARN产生背景

在旧版本的MapReduce中的JobTracker/TaskTracker在可扩展性、消耗内存、可靠性和线程模型方面存在很多问题,需要开发者做很多调整来修复。

早期MapReduce本身存在着一些问题:

1)JobTracker单点故障问题;如果Hadoop集群的JobTracker挂掉,则整个分布式集群都不能使用了。
2)JobTracker承受的访问压力大,影响系统的扩展性。
3)不支持MapReduce之外的计算框架,比如Storm、Spark、Flink等。

从Hadoop 0.23.0版本开始,Hadoop 的MapReduce框架被动了“大手术”,发生了根本变化,新的Hadoop MapReduce框架被命名为MapReduce V2,也叫YARN。

3.为什么要使用YARN?

与旧MapReduce相比,YARN采用了一种分层的集群框架,具有以下几个优势:

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

2) YARN通过将资源管理和应用程序管理两部分剥离开来,分别由ResourceManager和ApplicationMaster进程来实现。其中,ResouceManager专管资源管理和调度,而ApplicationMaster则负责与具体应用程序相关的任务切分、任务调度和容错等。

3)YARN具有向后兼容性,用户在MR1上运行的作业,无需任何修改即可运行在YARN之上。

4)对于资源的表示以内存为单位(在目前版本的 Yarn 中没有考虑 CPU的占用),比之前以剩余 slot 数目为单位更合理。

5)支持多个框架,YARN不再是一个单纯的计算框架,而是一个框架管理器,用户可以将各种各样的计算框架移植到YARN之上,由YARN进行统一管理和资源分配,由于将现有框架移植到YARN之上需要一定的工作量,当前YARN仅可运行MapReduce这种离线计算框架。

6)框架升级容易,在YARN中,各种计算框架不再是作为一个服务部署到集群的各个节点上(比如MapReduce框架,不再需要部署JobTracker、 TaskTracker等服务),而是被封装成一个用户程序库(lib)存放在客户端,当需要对计算框架进行升级时,只需升级用户程序库即可。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/bigdata/1946.html
喜欢 (2)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】