YARN发展和架构组件功能详解

简介: YARN的架构YARN业务架构图ResourceManager全局资源管理器,整个集群只有一个,负责集群资源的统一管理和调动分配。

YARN的架构

YARN业务架构图

ResourceManager

全局资源管理器,整个集群只有一个,负责集群资源的统一管理和调动分配。(可以理解为肯德基里面唯一一个收银员,处理客户请求,启用客户下单处理的厨师,并且监控厨师,为订单分配厨房资源 )
  • 处理客户端请求
  • 启动/监控ApplicationMaster
  • 监控NodeManager
  • 资源分配与调度

The ResourceManager has two main components: Scheduler and ApplicationsManager.
ResourceManager有两个主要组件:Scheduler 和ApplicationsManager.

Scheduler介绍

Scheduler负责为各种运行中的应用程序分配资源,这些应用程序通常受到容量、队列等的限制。Scheduler是纯粹的调度程序,因为它不为应用程序执行状态监视或跟踪。此外,它也不能保证由于应用程序故障或硬件故障而重新启动失败的任务。Scheduler根据应用程序的资源需求执行其调度功能;它是基于资源容器(Container)的抽象概念执行的,该概念包含内存、CPU、磁盘、网络等元素。在第一个版本中,只支持内存。

ApplicationsManager介绍

The ApplicationsManager is responsible for accepting job-submissions, negotiating the first container for executing the application specific ApplicationMaster and provides the service for restarting the ApplicationMaster container on failure.
ApplicationsManager负责接受作业提交,协商执行特定于应用程序的ApplicationMaster的第一个容器,并为失败时重新启动ApplicationMaster容器提供服务。

NodeManager介绍

整个集群有多个,负责点节点的资源的管理和使用。

  • 单个节点上的资源管理
  • 处理来自ResourceManager的命令
  • 处理来自ApplicationMaster的命令
    NodeManager管理抽象容器,这些容器代表可供一个特定应用程序使用节点资源。
    并向ResourceManager/Scheduler报告的每台机器框架代理。

The NodeManager is the per-machine framework agent who is responsible for containers, monitoring their resource usage (cpu, memory, disk, network) and reporting the same to the ResourceManager/Scheduler.
NodeManager是负责容器、监视它们的资源使用情况(CPU、内存、磁盘、网络)并向ResourceManager/Scheduler报告的每台机器框架代理。

ApplicationMaster

管理一个在yarn内运行的应用程序的每个实例(hive,spark)

  • 数据切分
  • 为应用程序申请资源,并分配给内部任务
  • 任务监控与容错

负责协调来自ResourceManager的资源,通过nodeManager监视容器的执行和资源使用(cpu、内存等资源分配)

container

image.png

yarn资源管理

image.png

说明:yarn主要工作是资源调度和资源隔离。他是一个部门经理,可以在不同的项目组调度任何人员,而各个资源(人员)是各个项目组的。部门经理只是协调资源,任务下达,而项目组长需要根据任务要求提供相应的资源(人员),项目组长保证这个人只处理这个任务。这个人员不会共享。

类比:ResourceManager表示部门经理、nodemanager表示项目组长、container表示组员、applicationMaster表示项目经理

目录
相关文章
|
1月前
|
存储 Kubernetes 负载均衡
Kubernetes的“厨房”:架构是菜谱,组件是厨具,资源对象是食材(下)
本文深入探讨了Kubernetes(K8s)的架构、核心组件以及资源对象。Kubernetes作为一个开源的容器编排系统,通过其独特的架构设计和丰富的组件,实现了对容器化应用程序的高效管理和扩展。通过本文的介绍,读者可以深入了解Kubernetes的架构、核心组件以及资源对象,从而更好地应用和管理容器化应用程序。Kubernetes的灵活性和可扩展性使得它成为容器编排领域的领先者,为企业提供了强大的容器运行环境。
|
2月前
|
SQL 存储 缓存
MySQL - 一文了解MySQL的基础架构及各个组件的作用
MySQL - 一文了解MySQL的基础架构及各个组件的作用
|
28天前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
33 0
|
28天前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
15 0
|
15天前
|
存储 数据库 Android开发
构建高效安卓应用:采用Jetpack架构组件优化用户体验
【4月更文挑战第12天】 在当今快速发展的数字时代,Android 应用程序的流畅性与响应速度对用户满意度至关重要。为提高应用性能并降低维护成本,开发者需寻求先进的技术解决方案。本文将探讨如何利用 Android Jetpack 中的架构组件 — 如 LiveData、ViewModel 和 Room — 来构建高质量的安卓应用。通过具体实施案例分析,我们将展示这些组件如何协同工作以实现数据持久化、界面与逻辑分离,以及确保数据的即时更新,从而优化用户体验并提升应用的可维护性和可测试性。
|
1月前
|
SpringCloudAlibaba Java 持续交付
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
95 1
|
1月前
|
Kubernetes API 调度
Kubernetes的“厨房”:架构是菜谱,组件是厨具,资源对象是食材(上)
本文深入探讨了Kubernetes(K8s)的架构、核心组件以及资源对象。Kubernetes作为一个开源的容器编排系统,通过其独特的架构设计和丰富的组件,实现了对容器化应用程序的高效管理和扩展。通过本文的介绍,读者可以深入了解Kubernetes的架构、核心组件以及资源对象,从而更好地应用和管理容器化应用程序。Kubernetes的灵活性和可扩展性使得它成为容器编排领域的领先者,为企业提供了强大的容器运行环境。
|
1月前
|
资源调度 分布式计算 Hadoop
Apache Hadoop YARN基本架构
【2月更文挑战第24天】
|
1月前
|
SQL 存储 数据管理
数据库系统架构与DBMS功能探微:现代信息时代数据管理的关键
数据库系统架构与DBMS功能探微:现代信息时代数据管理的关键
36 1
|
1月前
uni-app 4.12开发弹出层组件(一)基础架构
uni-app 4.12开发弹出层组件(一)基础架构
19 0