主页 > 新闻资讯 > 大数据学习:Yarn架构设计

大数据学习:Yarn架构设计

作者:张老师 浏览次数: 2020-12-07 17:15
Yarn作为Hadoop生态的资源调度框架,其重要性自是不必多说,从搭建Hadoop基础架构开始,我们就需要对Yarn这个框架做到足够清晰的认识和了解。今天的大数据学习分享,我们主要来讲讲Yarn的架构设计。

YARN是Yet Another Resource Negotiator的缩写,它是Hadoop的第二代集群资源调度框架。因为第一代Hadoop集群资源调度的可靠性差、扩展性差等相关问题,将Yarn从MapReduce中完全独立出来,从专门支撑MapReduce任务调度升级成为了一个支持多种应用类型的通用集群资源调度框架。

大数据学习:Yarn架构设计

从此之后的Yarn框架,除了MapReduce之外,Spark、Hive等一系列服务都可以作为应用运行在YARN之上,统一使用YARN为整个集群资源进行宏观的调度与分配。

Yarn资源模型和Container

YARN将服务器资源进行了抽象封装,它使用Container对象代表申请资源的基本单元。

这些资源包括资源名称(服务器名称、机架等)、内存和CPU,YARN通过Container机制将服务器资源进行了隔离。每个应用都可以通过ApplicationMaster向ResourceManager申请资源,当ApplicationMaster向ResourceManager申请资源时,ResourceManager返回的资源使用Container的个数来表示,比如一个Spark计算任务需要5个Container资源。

ResourceManager

ResourceManager是一个全局的资源管理器,负责整个系统的资源管理和分配以保证整个集群的高效运行。它会根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。

此外,ResourceManager还支持一个可插拔的调度器插件来支持多种资源调度策略,比如使用公平调度或是容量调度。

ApplicationMaster

每一个想要运行在YARN上的应用都必须有一个相应的ApplicationMaster实现,应用将内部的任务调度逻辑和监控都交由它们自己的ApplicationMaster实现类来处理。

ApplicationMaster进程在运行的过程中主要负责与ResourceManager进行通信,以申请执行任务时所需要的资源,在申请到资源之后再进一步执行自身内部的调度任务。同时ApplicationMaster也负责监控自己运行的内部任务状态,在任务失败的时候重新为任务申请相应资源并重启任务。

NodeManager

NodeManager是每个服务器节点上资源管理器,负责管理自己所处服务器Containers的整个生命周期。

在YARN上运行的应用最终的逻辑执行程序(比如Spark的task、MapReduce的job)都会在NodeManager的Container中运行,可以说NodeManager是YARN计算节点的代理,因为ResourceManager只会将任务分配到启动了NodeManager进程的服务器。

关于大数据学习,Yarn架构设计,以上就为大家做了大致的介绍了。Yarn作为Hadoop集群的必备组件框架,也是大数据开发者们的必备技能,学习当中需要予以相应的重视。成都加米谷大数据,专业大数据培训机构,大数据开发、数据分析与挖掘,本月正在招生中,课程大纲及试学视频,可联系客服获取!
热点排行
推荐文章
立即申请>>