前言

几天前和大哥说起了Yarn,大哥问我,你知道Yarn里面怎么进行资源的动态分配回收的吗?我和诚实,说不知道,然后就有了这个系列博文。不同版本的hadoop版本对应的yarn文档会有差别,本文中选择的是Hadoop 3.3;废话不多说,咱们直接开始吧!

架构

YARN的基本思想是将资源管理和作业调度/监视的功能拆分为单独的守护程序。 这个想法是拥有一个全局的ResourceManager(RM)和每个应用程序的ApplicationMaster(AM)。 应用程序可以是单个作业,也可以是作业的DAG。

ResourceManager和NodeManager构成数据计算框架。 ResourceManager是在系统中所有应用程序之间仲裁资源的最终权限。 NodeManager是每台机器的框架代理,负责容器,监视其资源使用情况(cpu,内存,磁盘,网络),并将其报告给ResourceManager / Scheduler。

实际上,每个应用程序的ApplicationMaster是特定于框架的库,其任务是与来自ResourceManager的资源进行协商,并与NodeManager一起执行和监视任务。

ResourceManager具有两个主要组件:Scheduler和ApplicationsManager。

Scheduler负责将资源分配给各种正在运行的应用程序,但要遵循常见的容量,队列等约束。Scheduler是纯粹的调度器,因为它对应用程序的状态不执行任何监视或跟踪。此外,它也不保证由于应用程序故障或硬件故障而重新启动失败的任务。Scheduler根据应用程序的资源需求执行调度功能;它基于资源容器(Container)的抽象概念来做到这一点,该容器包含诸如内存,cpu,磁盘,网络等元素。

Scheduler具有可插拔策略,该策略负责在各种队列,应用程序等之间分配群集资源。例如CapacityScheduler和FairScheduler这些Scheduler都支持可插拔。

ApplicationsManager负责接受作业提交,协调第一个容器,该容器用于执行应用程序特定的ApplicationMaster,同时提供在发生故障时重新启动ApplicationMaster容器的服务。每个应用程序ApplicationMaster负责与Scheduler协调适当的资源容器,跟踪其状态并监视进度。

hadoop-2.x中的MapReduce保持与以前的稳定版本(hadoop-1.x)的API兼容性。这意味着仅通过重新编译,所有MapReduce作业仍应在YARN上保持不变。

YARN通过ReservationSystem支持资源保留的概念,ReservationSystem是一个组件,该组件可以让用户指定资源永久和临时限制(例如,截止日期)的配置文件,并保留资源以确保重要任务的按预期执行。ReservationSystem可以长期跟踪资源,执行保留的准入控制,并动态指示底层调度器确保保留的资源是充足。

为了将YARN扩展到成千上万个节点,YARN通过YARN Federation功能支持联合的概念。Federation允许将多个YARN(子)集群透明地连接在一起,并使它们看起来像一个单一的集群。这可以用于实现更大的规模,和允许将多个独立的群集一起用于执行大的作业,或用于具有全部权限的租户。

参考链接

yarn官网

最新文章

  1. JS组件系列——Bootstrap右键菜单解决方案:ContextMenu
  2. 非常提高mac生产力的一些插件归纳整理
  3. data Binding
  4. mac ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib /mysql/mysql.sock' (111)
  5. Servlet简介与Servlet和HttpServlet运行的流程
  6. 数据结构Java实现04----循环链表、仿真链表
  7. js-分享107个js中的非常实用的小技巧(借鉴保存)
  8. OC字符串常用函数
  9. PV UV
  10. TCP 流模式与UDP数据报模式(转)
  11. [课程相关]homework-08
  12. day3_python学习笔记_chapter5_数字
  13. 【腾讯开源】Android性能测试工具APT使用指南
  14. Docker网络代理设置
  15. Android 类似duplicate entry: android/support/v4/internal/view/SupportSubMenu.class问题解决办法汇总
  16. [orleans2.1]这是你没玩过的船新版本
  17. Sql Server 2005/2008数据库被标记为“可疑”/“质疑”的问题
  18. 10.30 rest_framework总结
  19. Mac改键软件Karabiner使用教程
  20. HttpContext.Current.Items的用途

热门文章

  1. 每日单词 —— cut to the chase
  2. Java基础——自己的总结
  3. Qt绘图浅析与实例
  4. 一文读懂 .NET 中的高性能队列 Channel
  5. Linux磁盘配额与LVM
  6. C语言:标识符 关键字 保留字 表达式 语句
  7. 从0到1认识XHTML
  8. [刘阳Java]_美团点评2018届校招面试总结_Java后台开发【转载】
  9. IO编程之IO流
  10. 一次搞懂JavaScript对象