专栏首页超哥的杂货铺分布式资源调度框架YARN

分布式资源调度框架YARN

YARN产生背景

我们先来了解一下MapReduce 1.x的架构以及存在的问题。

hadoop1.x的架构

如图所示,1.x的架构也采用的是主从结构:即master-slaves架构,一个JobTracker带多个TaskTracker

JobTracker:负责资源管理和作业调度;Tasktracker 向jobtracker定期汇报本节点的健康状况、资源使用情况、作业执行情况;同时也接收来自JobTracker的命令,负责启动和杀死任务的具体执行。MapReduce作业拆分成Map任务和Task任务,由TaskTracker负责执行和汇报。

这样的架构存在的缺点:

  • 只有一个JobTracker负责集群事务的集中处理,存在单点故障。且压力大不易扩展。
  • JobTracker需要完成得任务太多,既要维护job的状态又要维护job的task的状态,造成资源消耗过多
  • 仅仅只能支持MR作业。不支持其他计算框架,如spark,storm等。
  • 存在多个集群,如Spark集群,hadoop集群同时存在,不能够统一管理,资源利用率较低,彼此之间没有办法共享资源,运维成本高。
YARN概述

Yet Another Resource Negotiator。是一个操作系统级别的资源调度框架。

MRv2 最基本的想法是将原 JobTracker 主要的资源管理和 Job 调度/监视功能分开作为两个单独的守护进程。有一个全局的ResourceManager(RM)和每个 Application 有一个ApplicationMaster(AM),Application 相当于 MapReduce Job 或者 DAG jobs。ResourceManager和 NodeManager(NM)组成了基本的数据计算框架。ResourceManager 协调集群的资源利用,任何 Client 或者运行着的 applicatitonMaster 想要运行 Job 或者 Task 都得向 RM 申请一定的资源。ApplicatonMaster 是一个框架特殊的库,对于 MapReduce 框架而言有它自己的 AM 实现,用户也可以实现自己的 AM,在运行的时候,AM 会与 NM 一起来启动和监视 Tasks。 reference:https://blog.51cto.com/14048416/2342195

hadoop2.x yarn的示意图

上图显示了YARN的位置:位于HDFS之上,多种应用程序之下。这样多种不同类型的计算框架都可以运行在同一个集群里面,共享同一个HDFS集群上的数据,享受整体的资源调度。也就是 XXX on YARN,例如Spark on YARN,Spark on YARN,MapReduce on Yarn,Storm on YARN,Flink on YARN。好处是与其他计算框架共享集群资源,按自愿需要分配,进而提高集群资源的利用率。

YARN架构

YARN的架构与核心组件

YARN的架构中包含ResourceManager(RM),NodeManager(NM),ApplicationMaster(AM),Container,Client供5种核心组件,依然是一种主从结构,即1个RM+N个NM的形式。它们的作用如下:

1)RM:整个集群同一时间提供服务的只有一个,(生产上多采用一主一备的方式防止故障发生),负责集群资源的统一管理和调度。主要承担的任务由:

  • 处理客户端的请求:提交一个作业,杀死一个作业。
  • 监控NM,如果某个NM发生故障,将该NM上运行的任务告诉AM,由AM决定是否重新运行相应task。

2)NM:整个集群中有多个,负责自身节点资源管理和使用。它承担的任务由:

  • 定时向RM汇报本节点的资源使用情况和自身的健康状况。
  • 接收并处理来自RM的各种命令,比如启动Container运行AM。
  • 处理来自AM的命令,如启动Container运行task。
  • 单个节点的资源管理

3)AM:每个应用程序对应一个AM,(每一个MapReduce作业,每一个Spark作业对应一个),负责对应的应用程序管理。

  • 为应用程序向RM申请资源(core、memory等),之后进行分配
  • 需要与NM进行通信:启动或者停止task,task和AM都是是运行在Container中的。

一个NM可能运行很多task,这些task分属于不同的AM

4)Container

  • 封装了CPU Memory等资源的一个容器,是一个任务运行环境的抽象。
  • AM运行在Container里面,task也是

5)Client:客户端

发起响应的请求,例如:

  • 提交作业,查看作业运行进度
  • 杀死作业
YARN执行流程

YARN的执行流程示意图

①客户端提交task 请求到RM

②③RM先到NM上启动1个Container,用来运行AM。

④AM启动之后,注册到RM上。(任务是由AM管理的,注册之后,用户就可以通过RM查询AM上的作业进度)并向NM申请资源(Core Memory),RM给AM分配相应的NM资源,

⑤⑥AM下发指令给相应的的NM,NM启动Container运行task 。

这就是YARN执行的一个基本流程,这是一个通用的流程,MapReduce作业对应MapReduce的Application master,Spark作业对应Spark的Application Master,其他的作业也有相应的Application Master。

我们在前面进行了YARN的配置,参考hadoop中Yarn的配置与使用示例,主要有mapred-site.xmlyarn-site.xml两个配置文件,在启动时有一个start-yarn.sh 命令,就是用来启动RM和NM的(使用stop-yarn.sh停止YARN的进程)。启动YARN之后,我们就可以在web浏览器上可以查看YARN集群的情况。包括当前节点的情况,任务的运行状态等。详细的可以参考我们运行计算PI的例子。

总结

我们学习了YARN的产生背景,基本概述,架构原理,执行流程等。它是一个通用的分布式资源管理和作业调度框架。使得多种计算框架可以共享HDFS存储资源,提高资源利用的效率。YARN里涉及到RM,NM,AM,Container,Client等多种核心组件。他们相互配合共同为我们的计算框架服务。

本文完。

以清净心看世界;

用欢喜心过生活。

超哥的杂货铺,你值得拥有~

长按二维码关注

本文分享自微信公众号 - 超哥的杂货铺(gh_a624b94bfdab),作者:超哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MacOS 下hive的安装与配置

    之前的文章中我们提到了Hive是Hadoop生态系统中的重要的成员之一,允许用户使用类似SQL的方式,很方便地进行离线数据的统计分析。本节我们就在Hadoop集...

    超哥的杂货铺
  • 一图入门Matplotlib绘图

    Matplotlib是Python里可视化的基础包,可以很方便地绘制二维,三维的图表,作图风格接近MATLAB,所以称为matplotlib。使用简单的语句就能...

    超哥的杂货铺
  • 在一个机器学习项目中,你需要做哪些工作?

    机器学习是通过对已有数据进行模型训练,再将训练好的模型应用于未知数据的过程。从这句话中我们可以看到几个关键要素:数据,模型,训练,应用。对于一个通常的机器学习项...

    超哥的杂货铺
  • iOS开发·runtime+KVC实现多层字典模型转换(多层数据:模型嵌套模型,模型嵌套数组,数组嵌套模型)

    更重要的是,有时候在iOS面试的时候,部分面试官会不仅问你某种场景会用到什么框架,更会问你如果要你来实现这个功能,你有没有解决思路?所以,自己实现字典转模型还是...

    陈满iOS
  • 做一名程序员需要学哪些知识?

    问这个问题的人都该打,先拖出去,赏一丈红~ 如果你是计算机学生或者意欲从事IT行业的人,那么再仗50大板!! 为什么?因为你肯定想都没有想过这个问题,一个典型的...

    用户1667431
  • AI 技术讲座精选:OpenAI 最新成果——利用对抗样本攻击机器学习

    对抗样本是指攻击者故意设计以导致机器学习模型出错的输入样本;他们对机器来说就像是视觉幻觉一样。在本篇博文中,我们将向您展示对抗样本在不同介质中的运作原理,也将讨...

    AI科技大本营
  • 为什么总觉得自己不适合搞IT?

    出处:http://blog.51cto.com/yangrong/2297867

    良月柒
  • 该如何建设公有云私有云,需要考虑哪些问题,该选择什么技术?

    问题导读: 1.云计算能够解决什么问题? 2.公有云面临哪些问题? 3.要建设云,你认为需要解决什么问题? 4.为什么选择openstack,建设公有云? 最...

    用户1410343
  • 从事云计算工作需要哪些技能?需要学的有好多

    从事云计算方面工作,需具备以下10条知识技能: 1. 商业和金融技能 技术和商业的融合始终是成功的绝对法宝,尤其在云计算时代。 2. 技术技能 自从有了...

    企鹅号小编
  • 如何选择适合你的“云”?

    尽管云计算非常火热,并不是所有的企业都要迁移到云上,事实上目前只有少数企业和组织把他们的IT迁移到云,有很多合理的理由使得企业更愿意采用自主拥有的on-prem...

    静一

扫码关注云+社区

领取腾讯云代金券