侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

带你入坑大数据(四)--- 资源调度框架Yarn

2022-07-11 星期一 / 0 评论 / 0 点赞 / 48 阅读 / 4969 字

前言在MapReduce的时候也许很多人会有这种疑问:写了MR后,map task和reduce task是如何在多节点上并行执行的,而且又是怎么决定哪个任务执行再哪个节点上的?其实这些问题都是和这个

前言

在MapReduce的时候也许很多人会有这种疑问:写了MR后,map task和reduce task是如何在多节点上并行执行的,而且又是怎么决定哪个任务执行再哪个节点上的?其实这些问题都是和这个Yarn有关。因为Yarn这个框架其实不仅仅是支持MR,还可以运行各种各样的程序。

我们知道程序运行在集群中是要耗费资源的,比如cpu,内存,IO···等,在hadoop1.x的时候,其实这个分配资源的行为(上图的cluster resource management)也是MapReduce自行完成的。在集群规模大,应用多时,MapReduce较为容易成为系统瓶颈。所以在hadoop2.x的时候,就引入了Yarn,而负责存储的HDFS和负责计算的MapReduce则不变。

Apache Hadoop YARN 是 apache Software Foundation Hadoop的子项目,为分离Hadoop2.0资源管理和计算组件而引入。YARN的诞生缘于存储于HDFS的数据需要更多的交互模式,不单单是MapReduce模式。Hadoop2.0 的YARN 架构提供了更多的处理框架,不再强迫使用MapReduce框架。

当企业的数据在HDFS中是可用的,有多种数据处理方式是非常重要的。有了Hadoop2.0和YARN,机构可以采用流处理、互动数据处理方式以及其他的基于Hadoop的应用程序。

Yarn

一、Yarn架构

YARN还是经典的主从(master/slave)结构,如下图所示。大体上看,YARN服务由一个ResourceManager(RM)和多个NodeManager(NM)构成,ResourceManager为主节点(master),NodeManager为从节点(slave)。

可以通过jps命令打开我们的集群进程,看到一个ResourceManager进程的话就是主节点。看到是NodeManager,那就是从节点

1.1 核心组件

组件名作用
ResourceManager是Master上一个独立运行的进程,负责集群统一的资源管理、调度、分配等等;
ApplicationManager相当于这个Application的监护人和管理者,负责监控、管理这个Application的所有Attempt在cluster中各个节点上的具体运行,同时负责向Yarn ResourceManager申请资源、返还资源等;
NodeManager是Slave上一个独立运行的进程,负责上报节点的状态(磁盘,内存,cpu等使用信息);
Container是yarn中分配资源的一个单位,包涵内存、CPU等等资源,YARN以Container为单位分配资源;

ResourceManager 负责对各个 NadeManager 上资源进行统一管理和调度当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的 ApplicationMaster,它负责向 ResourceManager 申请资源,并要求 NodeManger 启动可以占用一定资源的任务。由于不同的 ApplicationMaster 被分布到不同的节点上,因此它们之间不会相互影响。

Client 向 ResourceManager 提交的每一个应用程序都必须有一个 ApplicationMaster,它经过 ResourceManager 分配资源后,运行于某一个 Slave 节点的 Container 中,具体做事情的 Task,同样也运行与某一个 Slave 节点的 Container 中。

1.2 Yarn是如何进行工作的

YARN的基本理念是将JobTracker/TaskTracker 两大职能分割为以下几个实体:

1. 一个全局的资源管理ResourceManager2. 每个应用程序一个ApplicationMaster3. 每个从节点一个NodeManager4. 每个应用程序一个运行在NodeManager上的Container 

这个是Yarn官方关于各个应用运行在Yarn上的通用图,看这种图还是先看角色,分别是两个client,一主三从。客户端需要先和主的Resource Manager建立连接(你看你看,从HDFS的NameNode到Kafka的controller和leader partition我都是说这句话,先联系主的,再通过主的去操作从的。真的所有大数据框架都一个样

广告 广告

评论区