下图简单明了的描述了hadoop yarn 的功能是如何从 hadoop 中细化出来的。

  注:图片来自 https://apprize.info/php/hadoop/9.html

  Hadoop 从 v2 开始,将资源调度与监控、任务作业的管理单独从 Hadoop 中抽取出来,即 原来的 JobTracker 和TaskTracker 的功能被抽取出来。 YARN 全称为Yet Another Resource Negotiator,在于要提供一个共享的任务调度计算平台。其中将资源和作业分离开来,形成资源管理平台和应用框架,资源管理平台主要负责资源的调度和监控;应用框架主要用于负责任务或作业的管理。

  从上图可以看出,YARN 不仅仅是简单地将JobTracker和TaskTracker的功能从hadoop 框架中分离出来,还将资源和任务的概念分离开来,将具体的任务和应用框架分离开来。只需要application的框架,如 mapreduce 或 spark 任务遵循 yarn的资源管理规范和任务的调度规范,任务就可以被提交到yarn上来执行。降低了模块之间的耦合性。

再来一个更加直观的来自官方文档的图来简单地说明一下 YARN的组件:

  从上图可以看出,ResourceManager 和 NodeManager 组成了数据计算框架。其中ResourceManager 负责管理计算过程所需的所有的资源;NodeManager 是计算框架在每一个节点上的agent,负责container以及监控资源,并将资源使用情况汇报给 ResouceManager或 Scheduler;每个应用程序ApplicationMaster实际上是一个特定于框架的库,其任务是协调来自ResourceManager的资源,并与NodeManager一起执行和监视任务。【翻译自官方文档】

  ResourceManager 包括Scheduler 和 ApplicationManager 两大组件。调度程序负责根据容量,队列等约束将资源分配给各种正在运行的应用程序。Scheduler 是纯调度程序,因为它不执行应用程序状态的监视或跟踪。 此外,由于应用程序故障或硬件故障,它无法保证重新启动失败的任务。调度程序根据应用程序的资源需求执行其调度功能; 它是基于资源Container的抽象概念,它包含内存,CPU,磁盘,网络等元素。【翻译自官方文档】

  综上所述,研究YARN,不得不研究ResourceManager 和 NodeManager的服务体系。其中,研究ResourceManager就必须要研究 Scheduler 和 ApplicationManager两大组件。

  注意,Container 其实是一个基于资源的一个概念,并不是某种服务。

  接下来,主要研究 RM服务以及NM服务以及二者是如何通信的。

YARN分析系列之一 -- 总览YARN组件的更多相关文章

  1. YARN分析系列之三 -- 从脚本入口分析 ResourceManager的初始化过程

    1. 由脚本找到 RM 主类 这部分,我们从脚本作为入口去逐步深入ResourceManager源码. 从 Hadoop 官方文档 中可以看到 ResourceManager 的启动命令为: Usag ...

  2. YARN分析系列之二 -- Hadoop YARN各个自模块说明

    先做如下声明,本代码版本是基于 3.1.2 版本. 其实,我们自己在写代码的时候,会有意识地将比较大的功能项独立成包,独立成module, 独立成项目,项目之间的关系既容易阅读理解,又便于管理. 如下 ...

  3. 一个系列搞懂YARN(1)——Yarn架构

    前言 几天前和大哥说起了Yarn,大哥问我,你知道Yarn里面怎么进行资源的动态分配回收的吗?我和诚实,说不知道,然后就有了这个系列博文.不同版本的hadoop版本对应的yarn文档会有差别,本文中选 ...

  4. kerberos系列之hdfs&yarn认证配置

    一.安装hadoop 1.解压安装包重命名安装目录 [root@cluster2_host1 data]# tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local/ [ ...

  5. spring源码分析系列 (1) spring拓展接口BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor

    更多文章点击--spring源码分析系列 主要分析内容: 一.BeanFactoryPostProcessor.BeanDefinitionRegistryPostProcessor简述与demo示例 ...

  6. Bootstrap源码分析系列之整体架构

    作为一名合格的前端工程师,你肯定听说过Bootstarp框架.确实可以说Bootstrap框架是最流行的前端框架之一.可是也有人说Bootstrap是给后端和前端小白用的,我认为只要学习它能给我们前端 ...

  7. Disruptor系列(三)— 组件原理

    前言 前两篇文章都是从github wiki中翻译而来,旨在能够快速了解和上手使用Disruptor.但是为了能够掌握该技术的核心思想,停留在使用层面还远远不够,需要了解其设计思想,实现原理,故这篇从 ...

  8. 资源管理与调度系统-YARN资源隔离及以YARN为核心的生态系统

    资源管理与调度系统-YARN资源隔离及以YARN为核心的生态系统 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是资源隔离 资源隔离是指为不同任务提供可独立使用的计算资源以 ...

  9. Spring Ioc源码分析系列--容器实例化Bean的四种方法

    Spring Ioc源码分析系列--实例化Bean的几种方法 前言 前面的文章Spring Ioc源码分析系列--Bean实例化过程(二)在讲解到bean真正通过那些方式实例化出来的时候,并没有继续分 ...

随机推荐

  1. 树莓派挂载移动硬盘开启samba

    本文参考 [https://blog.csdn.net/u010906068/article/details/38455363],原文部分步骤在我的树莓派上,可能是版本不同吧,进行了修改后部署成功 一 ...

  2. Android的PVPlayer介绍

    1 Player的组成 OpenCore的Player的编译文件是pvplayer/Android.mk,将生成动态库文件 libopencoreplayer.so.这个库包括了双方面的内容:一方是P ...

  3. 【转】java内部类的作用分析

    转自:http://blog.csdn.net/ilibaba/article/details/3866537 另收另外一篇有空的时候看:http://jinguo.iteye.com/blog/71 ...

  4. 各个版本 Windows 10 系统中自带的 .NET Framework 版本

    原文各个版本 Windows 10 系统中自带的 .NET Framework 版本 Windows 名称 Windows 版本 自带的 .NET Framework 版本 Windows 10 Oc ...

  5. Why I Choose Delphi Summary

    Over the summer, there has been a number of blog posts on this topic, but I haven't seen a complete ...

  6. Kitto2 now with free opensource Kide2 since September 2017(提供Web解决方案,大概是觉得Mobile开发快差不多了)

    Kitto2 is a tool for data-driven web application Development. It allows to create Rich Internet Appl ...

  7. win7在USB该解决方案不健全音箱

    Win7安装后,原XP在正常工作USB小喇叭不工作,重新安装声卡驱动程序仍然是相同的.后来,通过以下的得心应手最后一次尝试. 1.右键右下角喇叭button. 2.点击"播放设备" ...

  8. .net core service && angular项目 iis发布

    项目结构 .net core 后端服务站点 angular 前端页面站点 项目模板来自于abp或者52abp .net core 后端服务站点发布到IIS 发布报错 .Net Core使用IIS部署出 ...

  9. js 注册事件

    <!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  10. SDP开发平台试用版上线!提供源码!!!!

    SDP开发平台提供试用版!! SDP软件快速开发平台是一套面向对象的应用软件快速开发平台. 1.SDP 设计端--页面设计 通过简单的拖拉控件,或者快速生成控件,可以在几分钟快速制作一个页面:如图 通 ...