mapreduceonyarn的执行流程

chhyan-dream chhyan-dream     2023-05-05     683

关键词:

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、运行任务,直到任务运行完成。

 

 

 

 

 

hadoop高可用+mapreduceonyarn集群搭建(代码片段)

虚拟机安装本次安装了四台虚拟机:hadoop001、hadoop002、hadoop003、hadoop004,安装过程略过移除虚拟机自带jdkrpm-qa|grep-ijava|xargs-n1rpm-e--nodeps关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld.service给普通用户添加root权限/etc/sudoers... 查看详情

systemverilog的执行流程

systemverilog语句的执行流程: sva的执行流程: 查看详情

mybatis执行流程

mybatis执行流程记录一下自己对mybatis的理解和心得.代码是自己手写的一个mybatisDemo,比较简陋,只有一个简单的查询语句,但是麻雀虽小五脏俱全,可以理解整个mybatis的执行流程.重要说明:本文讲述的只是本人手写的简易mybatisDemo,可以... 查看详情

mybatis执行流程

mybatis执行流程?记录一下自己对mybatis的理解和心得.代码是自己手写的一个mybatisDemo,比较简陋,只有一个简单的查询语句,但是麻雀虽小五脏俱全,可以理解整个mybatis的执行流程.重要说明:本文讲述的只是本人手写的简易mybatisDemo,可... 查看详情

springmvc的执行流程(有图有真相)

文章目录SpringMVC的执行流程MVCSpringMVC执行流程SpringMVC的执行流程我们先回顾一下MVC的概念,便于我们学习SpringMVC的执行流程MVCMVC是一种设计模式,在这种模式下软件被分为三层,即Model(模型)、View(视图... 查看详情

mybatis源码阅读之--整体执行流程

Mybatis执行流程分析Mybatis执行SQL语句可以使用两种方式:使用SqlSession执行update/delete/insert/select操作使用SqlSession获得对应的Mapper,然后调用mapper的相应方法执行语句其中第二种方式获取Mapper的流程在前面已经解析过,请查看文章My... 查看详情

jsp执行流程

 一、jsp执行流程1.发送请求,请求访问jsp文件。 2.服务器(Tomcat)提供的jspparser解析器解将jsp转化为java文件。jsp本质上是一个servlet。3.servlet分析器将java文件进行执行编译成class文件(最终被执行的字节码文件)4.服务器... 查看详情

Express.js 使用回调的执行流程

】Express.js使用回调的执行流程【英文标题】:Express.jsexecutionflowusingcallbacks【发布时间】:2015-05-3021:34:16【问题描述】:我非常怀疑express.js应用程序的执行流程,其中有对数据库的异步请求。我已经阅读了有关Node.js架构的信息... 查看详情

了解这个Java程序的执行流程[重复]

】了解这个Java程序的执行流程[重复]【英文标题】:UnderstandingexecutionflowofthisJavaprogramme[duplicate]【发布时间】:2017-01-1204:48:45【问题描述】:我是学习Java的新手,谁能解释一下以下代码的执行流程?我对输出感到很困惑。这是代... 查看详情

go语言讲解递归函数的执行流程

递归流程 查看详情

go语言讲解递归函数的执行流程

递归流程 查看详情

流程控制分支结构

流程控制分支结构:在一个程序执行的过程中,名条代码的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能流程控制就是来控制我们的代码按照什么结构项序来执行流程... 查看详情

如何查询已经执行过的流程信息?(代码片段)

上篇文章和小伙伴们分享的流程操作主要是正在执行的流程,我们有一个非常常见的场景是查询执行过的流程信息,在上篇文章中,小伙伴们已经知道,对于正在执行的流程,会在ACT_RU_EXECUTION表中保存一条对... 查看详情

如何查询已经执行过的流程信息?(代码片段)

上篇文章和小伙伴们分享的流程操作主要是正在执行的流程,我们有一个非常常见的场景是查询执行过的流程信息,在上篇文章中,小伙伴们已经知道,对于正在执行的流程,会在ACT_RU_EXECUTION表中保存一条对... 查看详情

如何查询已经执行过的流程信息?(代码片段)

上篇文章和小伙伴们分享的流程操作主要是正在执行的流程,我们有一个非常常见的场景是查询执行过的流程信息,在上篇文章中,小伙伴们已经知道,对于正在执行的流程,会在ACT_RU_EXECUTION表中保存一条对... 查看详情

winvnc分析——源码执行流程

下面的内容是用VC.NET的调试器调试的整个源码而确定的执行流程.在分析代码时尽量不要静态的分析代码,这样速度很慢的。利用调试器我们可以通过简单的设置断点来跟踪整个执行流程。WINVNC调试其整体流程 在WinMain中进行... 查看详情

3-4特殊的流程控制语句

流程控制: 对PHP程序执行的过程进行控制! PHP有哪些手段对程序执行过程进行控制!一、顺序执行 自上而下的执行即可!对这个执行过程没有控制!二、分支执行三、循环执行 计算机最擅长的功能之一就是按照规定的条件,重... 查看详情

考虑执行流程时,异常的反面是啥?

】考虑执行流程时,异常的反面是啥?【英文标题】:WhatistheoppositeofanExceptionwhenconsideringexecutionflow?考虑执行流程时,异常的反面是什么?【发布时间】:2019-04-1902:48:24【问题描述】:我标记了python,因为这是我正在使用的,并... 查看详情