本文转载自微信公众号「大数据技术与数仓」,作者西贝。转载本文请联系大数据技术与数仓公众号。
Apache YARN(Yet Another Resource Negotiator)是 Hadoop 的集群资源管理器。Yarn 是在 Hadoop 2.x 中引入的。
Yarn 允许不同的数据处理引擎,如图形处理、交互处理、流处理以及批处理来运行和处理存储在 HDFS(Hadoop 分布式文件系统)中的数据。其实,YARN不仅负责资源分配,而且也会负责作业的调度。
MapReduce1.0既是一个计算框架,也是一个资源管理调度框架。到了Hadoop2.0以后,MapReduce1.0中的资源管理调度功能,被单独分离出来形成了YARN,它是一个纯粹的资源管理调度框架,而不是一个计算框架。被剥离了资源管理调度功能的MapReduce 框架就变成了MapReduce2.0,它是运行在YARN之上的一个纯粹的计算框架,不再自己负责资源调度管理服务,而是由YARN为其提供资源管理调度服务。
如下图所示:目前主流的大数据计算框架都可以运行在YARN上。
YARN总体上仍然是Master/Slave结构。在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的任务。由于不同的ApplicationMaster被分布到不同的节点上,因此它们之间不会相互影响。
一个纯粹的调度器,专门负责集群中可用资源的分配和管理。
负责节点本地资源的管理,包括启动应用程序的Container,监控它们的资源使用情况,并报告给RM
特定框架库的一个实例,负责有RM协商资源,并和NM协调工作来执行和监控Container以及它们的资源消耗。AM也是以一个的Container身份运行。
ResourceManager
ResourceManager(RM)是一个全局的资源管理器,负责整个系统的资源管理和分配,主要包括两个组件,即调度器(Scheduler)和应用程序管理器(Applications Manager)。
调度器接收来自ApplicationMaster的应用程序资源请求,把集群中的资源以“容器”的形式分配给提出申请的应用程序,容器的选择通常会考虑应用程序所要处理的数据的位置,进行就近选择,从而实现“计算向数据靠拢”。
容器(Container)作为动态资源分配单位,每个容器中都封装了一定数量的CPU、内存、磁盘等资源,从而限定每个应用程序可以使用的资源量。
调度器被设计成是一个可插拔的组件,YARN不仅自身提供了许多种直接可用的调度器,也允许用户根据自己的需求重新设计调度器。
应用程序管理器(Applications Manager)负责系统中所有应用程序的管理工作,主要包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动等。
NodeManager
NodeManager是驻留在一个YARN集群中的每个节点上的代理,主要负责:
需要说明的是,NodeManager主要负责管理抽象的容器,只处理与容器相关的事情,而不具体负责每个任务(Map任务或Reduce任务)自身状态的管理,因为这些管理工作是由ApplicationMaster完成的,ApplicationMaster会通过不断与NodeManager通信来掌握各个任务的执行状态。
ApplicationMaster
ResourceManager接收用户提交的作业,按照作业的上下文信息以及从NodeManager收集来的容器状态信息,启动调度过程,为用户作业启动一个ApplicationMaster。
ApplicationMaster的主要功能是:
简单流程示意图如下:
1.作业提交
JobSubmitter 实现的作业提交过程执行以下操作:
2.作业初始化
任务分配
任务执行
作业完成
Hadoop生态系统是工业界应用最广泛的大数据生态系统。作为Hadoop 生态圈的重要一员,YARN在开源大数据领域有着重要的地位,很多计算框架都能够运行在YARN上,比如Spark,Flink,Storm等。对于大多数公司的大数据计算场景,采用YARN来管理集群,是一个比较常见的解决方案。
当前题目:面试 | 深入理解Yarn的内部架构
文章起源:http://www.mswzjz.cn/qtweb/news6/420306.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能