Hadoop系列 : Yarn原理解析-工作流程

Yarn 概述

Yarn是一个资源调度平台 , 负责为运算进程提供服务器运算资源

Yarn上可以运行MapReduce、Storm、tez、Spark、Flink等分布式运算进程

Yarn的运行流程

  • client向yarn提交job , 首先找到ResourceManager分配资源
  • ResourceManager开启一个Container , 在Container中运行一个Application Manager
  • Aplication Manager找到一台NodeManager启动Application Master
  • Application Master向Application Manager申请计算任务所需资源
  • Resource Scheduler将资源封装发给Application Master
  • Application Master将获取到的资源分配给各个NodeManager
  • 各个NodeManager得到任务和资源开始执行计算任务
  • 计算任务执行结束后 , 将执行结果反馈给Application Master
  • Application Master将任务执行的结果反馈给Application Manager

Yarn的几个概念

Yarn不知道用户提交的进程如何运行的

Yarn只提供运算资源的调度(运算进程向Yarn申请资源 ,  Yarn负责分配)

Yarn的主管角色叫ResourceManager

Yarn中具体提供运算资源的角色叫NodeManager

Yarn可以作为一个通用的资源调度平台 , 企业中以前存在的各种运算集群都可以集成在一个物理集群上 , 提高资源利用率

Container

Container是Yarn中的抽象资源 , 它封装了某个节点上的多维度资源 , 如内存、CPU、磁盘、网络等 , 当Resource Scheduler为Application Master返回的资源就是使用Container表示的

Yarn会为每一个任务分配一个Container , 该任务只能使用这个Container中的资源

Yarn内存管理

Yarn允许用户配置每个节点上的可用物理内存(非硬件物理内存 , 因为其它应用可能占用一部分内存)

总结

Yarn主要职责就是管理每个节点用户给与的CPU和内存资源

猜你喜欢

转载自blog.csdn.net/qq_40651717/article/details/85326983