1、概述

Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。

Yarn的架构如下图所示:

从Yarn的架构图来看,他主要由ResourceManager、NodeManager、ApplicationMaster和Container等一下几个组件构成。

1)ResourceManager

Yarn分层结构的本质是ResourceManager,这个实体控制整个集群并管理应用程序向基础计算资源的分配。Resourcemanager将各个资源(计算,内存,带宽等)精心安排给基础NodeManager。ResourceManager还与ApplicationMaster一起分配资源,与NodeManager一起启动和监视他们的基础应用程序。

总的来说,RM有以下功能:

(1)处理客户端的请求

(2)启动和监控ApplicationMaster

(3)监控NodeManager

(4)资源分配与调度

2)ApplicationMaster

ApplicationMaster管理在Yarn内运行的每个应用程序。负责协调来自RM的资源,并通过NodeManager监控容器的执行和资源的使用(CPU、内存等的资源分配)。总体来说,AM有以下作用

(1)负责数据的切分

(2)为应用程序申请资源并分配给内部的任务

(3)任务的监控与容错

3)NodeManager

NodeManager管理Yarn集群中的每个节点,并提供针对集群每个节点的服务,从监督一个容器的终生管理到监视资源和跟踪节点健康。而NodeManager管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。

总体来说,NM有以下作用

(1)管理单个节点上的资源

(2)处理来自ResourceManager的命令

(3)处理来自ApplicationMaster的命令

4)、Container

Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。

总的来说,Container有以下作用

对任务运行环境进行抽象,封装CPU、内存等多维度的资源以及环境变量、启动命令等任务运行相关的信息

2、Yarn的运行机制

运行流程步骤为:

(1)用户向Yarn提交应用程序(job  Application),jar文件,其中包裹着ApplicationMaster程序,启动ApplicationMaster的命令等

(2)RM为该job分配第一个Container,并选中一个NodeManager在其上运行job的ApplicationMaster

(3)ApplicationMaster向ApplicationsManager注册,这样就可以在RMWeb界面查询这个job的运行状态

(4)ApplicationMaster采用轮询的方式通过RPC协议向RM申请和领取资源

(5)一旦ApplicationMaster拿到资源,就与对应的NM通信,要求启动任务。

(6)NodeManager为任务设置好运行环境(jar包等),将任务命令写在一个脚本里。并通过该脚本启动任务 task。

(7)各个task通过rpc协议向ApplicationMaster汇报自己的状态和进度,以此让ApplicationMaster随时掌握各个task的运行状态。

(8)ApplicationMaster向ApplicationsManger注销且关闭自己。

总体来说,分为两步:

1、启动ApplicationMaster,申请资源

2、运行任务,直到任务运行完成。

MapReduce On Yarn的执行流程的更多相关文章

  1. 理解Yarn的执行流程和组件作用

    Yarn引入案例 1.学生找院长报到,院长给学生一个学号 2.院长比较忙,继续找主任处理学生事务 3.系主任找院办给学生分配资源(书本) 4.主任找张老师教授java 5.张老师给学生安排座位 6.学 ...

  2. yarn是什么?为什么会产生yarn,它解决了什么问题?以及yarn的执行流程

       yarn是什么?为什么会产生yarn,它解决了什么问题? 答:yarn是作业调度和集群资源管理的一个框架. 首先对之前的Hadoop 和 MRv1 简单介绍如下: Hadoop 集群可从单一节点 ...

  3. YARN Application执行流程

    原文见  http://xiguada.org/yarn-application_run/ 本节简单描述了一个Application在YARN上的执行流程,希望对初识YARN的同学提供一些帮助. 图1 ...

  4. YARN应用程序开发流程(类似于MapReduce On Yarn)本内容版权归(小象学院所有)

    MapReduce On Yarn和MapReduce程序区别 MapReduce On Yarn(由专业人员开发)1 为MapReduce作业运行在YARN上提供一个通用的运行时环境2 需要与Yar ...

  5. MapReduce执行流程及程序编写

    MapReduce 一种分布式计算模型,解决海量数据的计算问题,MapReduce将计算过程抽象成两个函数 Map(映射):对一些独立元素(拆分后的小块)组成的列表的每一个元素进行指定的操作,可以高度 ...

  6. Yarn执行流程

    在Yarn中,JobTracker被分为两部分:ResourceManager(RM)和ApplicationMaster(AM). MRv1主要由三部分组成:编程模型(API).数据处理引擎(Map ...

  7. MapReduce作业的执行流程

    MapReduce任务执行总流程 一个MapReduce作业的执行流程是:代码编写 -> 作业配置 -> 作业提交 -> Map任务的分配和执行 -> 处理中间结果 -> ...

  8. MapReduce架构与执行流程

    一.MapReduce是用于解决什么问题的? 每一种技术的出现都是用来解决实际问题的,否则必将是昙花一现,那么MapReduce是用来解决什么实际的业务呢? 首先来看一下MapReduce官方定义: ...

  9. [Hadoop]浅谈MapReduce原理及执行流程

    MapReduce MapReduce原理非常重要,hive与spark都是基于MR原理 MapReduce采用多进程,方便对每个任务资源控制和调配,但是进程消耗更多的启动时间,因此MR时效性不高.适 ...

随机推荐

  1. 2019年5月6日A股两百点暴跌行情思考

    原因:特朗普推特发布贸易战消息 盘面:跳空低开,单边下跌,上证指数最大跌幅200点,收盘千股跌停 操作:开盘加仓,盘中加仓,尾盘满仓 总结: 特大黑天鹅事件爆发引发大盘暴跌时,后续必将迎来一个反弹机会 ...

  2. KNN-学习笔记

    仅供学习使用 练习1 # coding:utf-8 # 2019/10/16 16:49 # huihui # ref: import numpy as np from sklearn import ...

  3. 腾讯玄武实验室向(CNVD)提交了一个重大漏洞“BucketShock”

    导读 11 月 21 日,在小米 IoT 安全峰会上,腾讯安全玄武实验室负责人于旸(花名:TK 教主)在演讲中透露,腾讯玄武实验室最近向国家信息安全漏洞共享平台(CNVD)提交了一个重大漏洞“Buck ...

  4. mysql MVCC 实现原理

    MVCC( Multi-Version Concurrency Controll) 每一行都存储了事件发生时的系统版本号(System Version Number),用来替代事件实际发生的时间.每一 ...

  5. 捣鼓Haskell

    最近想学这门语言,于是做了一些准备工作,配置好一切后,打算玩一玩. 先扔一段官方简介: Introduction Haskell is a computer programming language. ...

  6. 获取Webshell方法总结

    一.CMS获取Webshell方法 搜索CMS网站程序名称 eg:phpcms拿webshell.wordpress后台拿webshell 二.非CMS获取Webshell方法 2.1数据库备份获取W ...

  7. C语言for循环嵌套示例

    打印九九乘法表 #include <stdio.h> int main() {   int n,i,j; for (i=1;i<=9;i++) printf("%-4d&q ...

  8. winform跳转到bs

    private void button7_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("http ...

  9. docker-构建建tomcat镜像并启动容器

    1.下载一个tomcat8,解压好改名为tomcat并配置端口为80,删除webapps下的默认的应用,修改tomcat/bin目录下脚本的权限,chmod +x *.sh 2.路径一般放在/usr/ ...

  10. 02-02Android 学习进度报告二

    今天我主要学习了Android的UI基础布局知识,主要是学习View与ViewGroup的概念以及其区别. 首先是代码说明: <?xml version="1.0" enco ...