首页 > 其他分享 >Hadoop:Yarn资源调度

Hadoop:Yarn资源调度

时间:2023-11-06 20:33:08浏览次数:32  
标签:Hadoop Yarn 调度 YARN Scheduler RM NodeManager 资源

1、Yarn是什么?

  Apache Hadoop YARN (Yet Another Resource Negotiator 另一种资源协调者)是一种新的Hadoop资源管理器,提供一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度。可以把Hadoop YARN理解为相当于一个分布式的操作系统平台,而MapReduce等计算程序则相当于运行于操作系统之上的应用程序,YARN为这些程序提供运算所需的资源(内存,CPU等,磁盘由HDFS管理)。Yarn支持各种计算框架,不关心你干是干什么的,只关心你要的资源

2、Yarn架构

   YARN 的基本思想是将资源管理和作业调度/监控的功能拆分为单独的守护进程。包括一个全局的 ResourceManager ( RM ) 和每个应用程序的ApplicationMaster ( AM )。Yarn的整体架构图如下:

 2.1ResourceManager

  包括两个主要组件:Scheduler 和ApplicationsManager。Scheduler负责资源的分配与调度(内存、CPU、磁盘、网络等)。ApplicationsManager 负责处理客户端请求,接受作业提交、启动或监控 ApplicationMaster。每个应用程序的 ApplicationMaster 负责与 Scheduler 协商适当的资源容器,跟踪其状态并监控进度。

2.2NodeManager

  YARN中的从角色,一台机器上一个,负责管理本机器上的计算资源。根据RM命令,启动Container容器,监视容器的资源使用功能情况,并且项RM主角色汇报资源使用情况。

2.3ApplicationMaster

  负责数据的切分,为应用程序申请资源并分配给内部的任务;

2.4Container

  封装某个节点的资源(内存、CPU、磁盘、网络等)

3、Yarn工作原理

(1)MR程序提交到客户端所在的节点。

(2)YarnRunner向ResourceManager申请一个Application。

(3)RM将该应用程序的资源路径返回给YarnRunner。RM给Client返回该job资源的提交路径(返回一个公共的资源提交路径,保证其他NM都能访问到)和作业id

(4)该程序将运行所需资源提交到HDFS上。

(5)程序资源提交完毕后,申请运行mrAppMaster。

(6)RM将用户的请求初始化成一个Task,会有一个节点来运行这个Task.

(7)其中一个NodeManager领取到Task任务。

(8)该NodeManager创建容器Container,并产生MRAppmaster。

(9)Container从HDFS上拷贝资源到本地。

(10)MRAppmaster向RM 申请运行MapTask资源。

(11)RM将运行MapTask任务分配给另外两个NodeManager,另两个NodeManager分别领取任务并创建容器。

(12)MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTask,MapTask对数据分区排序。

(13)MrAppMaster等待所有MapTask运行完毕后,向RM申请容器,运行ReduceTask。

(14)ReduceTask向MapTask获取相应分区的数据。

(15)程序运行完毕后,MR会向RM申请注销自己。

 

4、Yarn资源调度

YARN支持多种调度算法,包括FIFO Scheduler、Capacity Scheduler和Fair Scheduler

 

标签:Hadoop,Yarn,调度,YARN,Scheduler,RM,NodeManager,资源
From: https://www.cnblogs.com/syq816/p/17803352.html

相关文章

  • 分布式任务调度系统设计(01)--分布式锁
    2分布式锁Quartz集群模式可水平扩展,也可分布式调度,但需业务方在数据库中添加对应表,有强侵入性。于是有人探索分布式锁模式。2.1超时关单通常做定时任务每2min检查前半小时的订单,将待支付订单列表查出,然后对订单中的商品进行库存的恢复,然后将该订单设置为无效。SpringSchedu......
  • Hadoop基于CallerContext增强血缘信息实践
    1.背景一般情况下,用户会以项目为维度提交作业。因为项目用户的拥有项目下的所有权限。如下所示,个人用户bob将在project_sa项目空间下提交作业,HDFS会通过project_sa进行鉴权并访问:上述方案有一个问题,如果HDFS中的auditlog中记录的操作用户是project_us,无法分辨具体由哪个用户提......
  • 可能是流水调度问题的证明
    之前一直都丢在luogu,现在终于放这了n个东西需要加工,在A加工的时间是ai,在B加工的时间是bi,每个东西必须在A加工完后才能在B加工,求最少时间贪心大体思路:不要让A有空闲时间,B的空闲时间尽量少是最优的对于贪心思路采用归纳法对于n=1的情况,显然最少时间是a1+b1对于n=2的......
  • Django实战项目-学习任务系统-配置定时调度任务
    接着上期代码内容,继续完善优化系统功能。 本次增加配置定时调度任务功能,学习任务系统定时任务管理添加的定时学习任务,需要通过配置调度任务,定时发布周期性的学习任务。以及每天定时发送学生用户属性值,积分值等信息到学生用户知晓。以及其他需要定时调度的任务都可以配置到定时......
  • npm, yarn设置国内源
    yarnconfigsetregistryhttps://registry.npm.taobao.org-gyarnconfigsetsass_binary_sitehttp://cdn.npm.taobao.org/dist/node-sass-g #查看当前npm的软件源设置npmconfiggetregistry#用淘宝镜像源覆写之前的软件源地址npmconfigsetregistryh......
  • Hadoop整合AWS S3和Google gcs对象存储实践
    1.背景https://blog.51cto.com/u_15327484/8193991介绍了海外Hadoop集群一般将冷数据放入到AWSS3或者存放到Googlegcs对象存储中。这些对象存储都提供了各自的客户端进行访问,例如awss3的客户端命令就是awss3;gcs的客户端命令是gsutil。这些命令一般需要直接登陆到授权机器中执......
  • linux 进程的管理和调度 --- __schedule() 函数分析
    运行队列Linux采用的是每个CPU都有自己的运行队列,这样做的好处:(1)每个CPU在自己的运行队列上选择任务降低了竞争;(2)某个任务位于一个CPU的运行队列上,经过多次调度后,内核趋于选择相同的CPU执行该任务,那么上次任务运行的变量很可能仍然在这个CPU缓存上,提高运行效率。 __schedule() ......
  • 1816_ChibiOS中的RT调度器
    GreyZhang/g_ChibiOS:IfoundanewRTOScalledChibiOSanditseemsinteresting!(github.com)1.ChibiOS的调度是一个严格根据优先级来的调度器。2.有一个与此功能相关的参数配置,用来设置时间片。如果这个数值设置为0,那么调度将会认为所有的线程优先级一样,线程之间的协同调......
  • FreeRTOS任务调度
    FreeRTOS任务调度器有哪些功能?FreeRTOS任务调度器具有以下功能:实现并发性和时间确定性:FreeRTOS的任务调度器是实现并发性和时间确定性的核心组件,它使用抢占式调度算法,通过分配优先级来确保高优先级的任务能够在低优先级任务之前执行。动态优先级调整:任务的优先级可以动态地......
  • FreeRTOS深入教程(任务创建的深入和任务调度机制分析)
    (文章目录)前言本篇文章将带大家深入学习任务的创建和分析任务调度的机制。一、深入理解任务的创建创建任务函数原型:BaseType_txTaskCreate(TaskFunction_tpxTaskCode,constchar*constpcName,/*lint!e971Unqualifiedchartypes......