S++

千线一眼

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

hadoop入门(15):YARN

简介

  • apache hadoop yarn(yet another Resource Negotiator) 是一种新的hadoop资源管理器。
  • YARN是一个通用的资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度。
  • YARN的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大的好处。

功能说明

资源管理系统:集群的硬件资源,和程序运行相关,比如内存、cpu
调度平台:多个程序同时申请计算资源如何分配,调度的规则(算法)
通用:不仅仅支持MapReduce程序,理论上支持各种计算程序,如Spark、Flink……


架构、组件

yarn架构

  • ResourceManager
    集群物理层面。
    yarn集群中的主角色,决定系统中所有应用程序之间资源分配的最终权限。
    接收用户提交,并通过NodeManager分配、管理各个机器上的计算资源。

  • NodeManager
    集群物理层面。
    yarn中的从角色,一台机器上一个,负责管理本机器上的计算资源。
    根据ResourceManager命令启动Container容器、监视容器的资源使用情况,并向ResourceManager汇报资源使用情况。

  • App Mstr(ApplicationMaster)
    App层面。
    用户提交的每一个App都包含ApplicationMaster。
    应用程序中的老大,负责应用程序中各阶段的资源申请,监督程序的执行情况。

  • Client
    客户端,提交数据。

  • Container容器
    资源的抽象。


交互流程

当用户向YARN提交一个应用程序后,YARN分两个阶段执行。
一: 客户端申请资源启动运行本次程序的ApplicationMaster
二: 由ApplicationMaster根据本次程序内部具体情况为它申请资源,并监控它的整个运行流程,直到运行完成。
三: ApplicationMaster启动成功后,首先向ResourceManager注册并保持通信,如此用户就可以直接通过ResourceManager直接查看应用程序运行状态。
四: ApplicationMaster为本次程序内部的各个Task任务向ResourceManager申请资源,并监控其运行状态。
五: 一旦ApplicationMaster申请到资源,便会与对应的NodeManager通信,要求其启动任务。
六: NodeManager为任务设置好环境后,将任务启动命令写到一个脚本当中,并通过运行该脚本启动任务。
七: 各个任务通过RPC协议向ApplicationMaster汇报自己的状态和进度。ApplicationMaster可以根据这些状态在任务失败时重启任务。
八: 应用程序完成后,ApplicationMaster向ResourceManager注销并关闭自己。


资源调度器Scheduler

三种调度器:先进先出调度器(FIFO)、容量调度器(Capacity)、公平调度器(Fair)
Apache版本YARN默认采用容量调度器,可在yarn-site.xml中yarn.resourcemanager.scheduler.class中修改。


容量调度器(Capacity)是hadoop3默认的调度策略。该策略允许多个组织共享整个集群资源,每个组织可以获得集群的一部分计算能力。
通过为每个组织分配专门的队列,再为每一个队列分配一定的集群资源,这样整个集群就可以通过设置多个队列为多个组织提供服务了。

posted on   S++  阅读(69)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示