背景

本文整理一些Hadoop YARN的相关内容。

简介

YARN(Yet Another Resource Negotiator)是Hadoop通用资源管理平台,为各类计算框架(离线MR、在线Storm、内存计算Spark等)提供统一的资源管理和调度。
它提供的功能有:

  • 统一资源管理和调度: 集群中所有节点的资源(内存、CPU、磁盘、网络)抽象为Container。计算框架需要向YARN申请Container,YARN按策略对资源进行调度与Container分配。

  • 资源隔离:YARN使用了轻量级资源隔离机制Cgroup进行资源隔离,避免互相干扰,一旦Container使用资源量超过阈值,即会被干掉。


图片来源于Hadoop官网


YARN最主要的思想是分离资源管理任务调度/监控。先介绍几个名词:

  • ResourceManager,简称RM: 全局管理计算程序的资源分配调度
  • NodeManager,简称NM:负责各个节点的资源与任务管理,会定时向RM汇报本节点的Container使用与运行情况。同时接收并处理来自AM的Container启动、停止等请求。
  • ApplicationMaster,简称AM:每个提交的应用程序都有一个AM,它负责从RM获取资源并与NM协同监控执行应用的执行。
  • Container:Container是某个节点上多维度资源(内存、CPU、磁盘、网络)的抽象,YARN为每个任务分配Container并且任务只能使用该Container所描述的资源。

从上面的官方YARN架构示意图中,可以看到RM负责接收client提交的job,AM负责向RM申请资源,NM向RM汇报本节点资源使用情况等。

RM中主要还包含了两个核心组件:

  • Scheduler:负责根据容量、队列等条件,根据各个应用程序所需将系统中的资源分配给各个应用程序。
  • ApplicationsManager:负责管理整个系统中所有应用程序,包括提交、与调度器协商资源以启动AM,监控AM运行状态并在失败时重启等。

YARN工作流程


图片来源于网络

YARN的具体工作流程为:

  1. 用户提交应用程序
  2. RM为该应用分配Container与对应NM通信,要求NM在Container中启动AM
  3. AM启动后向RM注册
  4. AM通过轮询向RM申请领用Container资源
  5. AM申请到资源后与NM通信,要求启动任务
  6. 运行中的程序会向AM通过协议通信同步运行状态与进度
  7. 在程序执行期间,client与AM通信同步任务状态信息
  8. 应用程序运行完毕后,AM向RM注销并关闭自己,Container资源被释放可以重用

参考

Apache Hadoop官网
Hadoop 新 MapReduce 框架 Yarn 详解

最新文章

  1. DataTable转化为Model
  2. JavaScript查找数组是否存在指定元素
  3. 控件 UI: VisualState, VisualStateManager, 控件的默认 UI
  4. vue 倒计时
  5. 设置iframe背景透明
  6. hdu 5363 Key Set
  7. C++ (P70—P96)
  8. java 字符串 asc 加密解密
  9. crm创建和编辑全局选项集
  10. ASP.NET状态服务及session丢失问题解决方案总结
  11. STURTS2 HELLOWORLD
  12. 第64章 学习 - Identity Server 4 中文文档(v1.0.0)
  13. http服务器搭建之apache与nginx的特性
  14. NFC 大电池 高性价比手机
  15. 20175236 2018-2019-2 《Java程序设计》第五周学习总结
  16. go操作redis和mysql示例
  17. Linux多台机器配置ssh免登录
  18. CFG文件格式
  19. chrome 字体太浅,如何设置
  20. IIS 安全设置

热门文章

  1. 安装mysql时报Missing required library libcc.dll 126
  2. ADO.NET获取数据(DataSet)同时获取表的架构
  3. [android] 轮播图-无限循环
  4. 浅谈Http协议是怎么回事?
  5. ORM--Entity Framework 学习(01)
  6. python正则表达式3-模式匹配
  7. SSM 后台封装的有值, 到前台打印的时候没有值
  8. Kendo Grid控件中将枚举值转为枚举名显示
  9. ActiveReports 报表应用教程 (12)---交互式报表之贯穿钻取
  10. Flutter:修改TextField的高度,以及无边框圆角