十六:mapreduce程序在yarn集群中的调度过程

mapreduce程序在yarn集群中的调度过程:

1.客户端想ResouceManager提交一个job作业,申请运行一个MR的程序,RPC调用

2.ResourceManager返回一个由创建的jobid目录.

3.在HDFS该目录下有一个以jobid命名的目录并,写入job.xml和job分片数据,job.jar,jobConfinger

4.通知RM,job的资源文件提交完毕.

5.初始化一个任务 然后放到队列中去

6.nodemanager 和ResouceManager 保持心跳进行通信nodeManger 时隔多少秒去调用ResouceManger节点提供的方法 查询resouceManager队列里是否有任务,当某个NodeManager节点发现ResouceManager队列中有任务,该nodeManager节点就会把ResouceManager队列中的任务领取过来.

7.当领取到任务后,会在NodeManager节点上分配一块硬件资源出来(容器container,相当于在一个节点上创建一台虚拟机 有内存 CPU IO,可以看做是一台JVM)(可将该容器看成一个进程yanrchild)在分配容器过程中,将HDFS上所有job配置文件全部拷贝到本地

8.当NodeManager分配好资源容器后,会向resouceManger汇报,当ResouceManger接收到汇报情况后,会告诉yarnRunner,哪个节点为你准备好了容器,然后会启动一个MRAppmaster程序.

9.当MRAppmaster程序起来后会读取,该节点容器container上的job资源,MRAPPMASTER知道任务该怎么执行,多少个切片,根据切片启动多少个MAP TASK,它就会向ResourceManager去申请计算资源(NodeManager上的资源容器contailner)

10.当ResourceManager收到申请后,会再次创建任务然后放到队列里,然后别的NodeManager就会领取到任务

11.某个NodeManager领取到任务是由ResouceManager决定的,因为任务中带有信息该由哪个NodeManager来领取任务因为ResouceManager有一套算法,比如根据负载根据切片信息是否在这个NodeManager节点上

12,然后领取到任务的NodeManager创建容器 创建job资源 然后会通知ResourceManager我已经领取到了,然后ResouceManager会通知MRappmaster容器已经准备完毕.

13.MRappmaster会调用NodeManager准备好的容器并启动一个运算程序 maptask .当MRappmaster启动Map task后会一直监控他们的运行状况,他们之间也有一个心跳机制.当Map task任务执行完成后,MRappmaster就会把处理完的Map Task进程销毁,当然Map task任务处理完的数据会在,NodeManager节点上并且已经分了区排了序,当然MRappmaster知道每个Map task任务生成结果文件放在哪里

14.当所有Map Task任务执行完成后,MRappmaster会向ResourceManager再次申请资源,然后ResourceManager生成任务然后又会有NodeManager领取到,会创建容器,当容器创建完成后,NodeManager会通知ResourceManager ,ResourceManager会通知MRAppmaster,然后MRappmaster会去启动该reduce Task 任务,

15.reduce Task 任务被启动后,会去询问MRappmaster你让我处理的数据在哪里,然后MRappmaster会告诉reduce Task任务你去取哪几个NodeManager节点上的数据并且取几号分区的数据,然后reduceTask会将每个NodeManger节点上属于自己的数据拉取到reduce Task任务中 然后对每个NodeManager节点上属于自己分区的数据进行规约合并 最后调用 reduce方法中,

16.当reduce处理完成后,MRappmaster会知道然后会注销该renduceTask进程,当所有reduceTask都完成注销掉后,MRappmaster会

通知ResourceManager将自己注销掉,并让RM回收资源(container)

时间: 2024-12-19 01:26:28

十六:mapreduce程序在yarn集群中的调度过程的相关文章

spark记录(5)Spark运行流程及在不同集群中的运行过程

摘自:https://www.cnblogs.com/qingyunzong/p/8945933.html 一.Spark中的基本概念 (1)Application:表示你的应用程序 (2)Driver:表示main()函数,创建SparkContext.由SparkContext负责与ClusterManager通信,进行资源的申请,任务的分配和监控等.程序执行完毕后关闭SparkContext (3)Executor:某个Application运行在Worker节点上的一个进程,该进程负责运

大数据学习之MapReduce基础与Yarn集群安装09

1大数据解决的问题? 海量数据的存储:hadoop->分布式文件系统HDFS 海量数据的计算:hadoop->分布式计算框架MapReduce 2什么是MapReduce? 分布式程序的编程框架,java->ssh ssm ,目的:简化开发! 是基于hadoop的数据分析应用的核心框架. mapreduce的功能:将用户编写的业务逻辑代码和自带默认组件整合成一个完整的 分布式运算程序,并发的运行在hadoop集群上. 3 MapReduce的优缺点 优点: (1)易于编程 (2)良好的拓

kubernetes实战(十六):k8s高可用集群平滑升级 v1.11.x 到v1.12.x

1.基本概念 升级之后所有的containers会重启,因为hash值会变. 不可跨版本升级. 2.升级Master节点 当前版本 [[email protected] ~]# kubeadm version kubeadm version: &version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.1", GitCommit:"b1b29978270dc22fecc592ac

Yarn集群的搭建和WordCount程序在集群提交方式

一.Yarn集群概述及搭建 1.Mapreduce程序运行在多台机器的集群上,而且在运行是要使用很多maptask和reducertask,这个过程中需要一个自动化任务调度平台来调度任务,分配资源,这个平台就是Yarn! 2.Yarn提交任务的流程: 当我们向Yarn集群提交任务后,Yarn通过Resourcemanager给任务分配资源,然后由NodeManager开辟运算空间来执行任务,在这个运算空间中开辟maptask和reducetask来运行任务. 3.Yarn集群的搭建 修改配置文件

YARN集群的mapreduce测试(四)

将手机用户使用流量的数据进行分组,排序: 测试准备: 首先同步时间,然后master先开启hdfs集群,再开启yarn集群:用jps查看: master上: 先有NameNode.SecondaryNameNode;再有ResourceManager; slave上:   先有DataNode:再有NodeManager: 如果master启动hdfs和yarn成功,但是slave节点有的不成功,则可以使用如下命令手动启动: hadoop-daemon.sh start datanode yar

YARN集群的mapreduce测试(五)

将user表计算后的结果分区存储 测试准备: 首先同步时间,然后master先开启hdfs集群,再开启yarn集群:用jps查看: master上: 先有NameNode.SecondaryNameNode;再有ResourceManager; slave上:   先有DataNode:再有NodeManager: 如果master启动hdfs和yarn成功,但是slave节点有的不成功,则可以使用如下命令手动启动: hadoop-daemon.sh start datanode yarn-da

Mapreduce提交YARN集群运行

Eclipse项目打包1.export2.通过maven打包,切入到项目目录下执行命令mvn clean package Mapreduce提交YARN集群运行 将jar包传到hadoop目录下运行格式:bin/hadoop jar  jar包名   包名(代码的包名).类名 +参数(输入路径输出路径)就可以在集群上运行了 原文地址:https://www.cnblogs.com/libin123/p/10330330.html

Spark程序提交到Yarn集群时所遇异常

Exception 1:当我们将任务提交给Spark Yarn集群时,大多会出现以下异常,如下: 14/08/09 11:45:32 WARN component.AbstractLifeCycle: FAILED [email protected]:4040: java.net.BindException: Address already in use java.net.BindException: Address already in use at sun.nio.ch.Net.bind0(

HDFS集群和YARN集群

Hadoop集群环境搭建(一) 1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有 NameNode / DataNode YARN集群: 负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager 本集群搭建案例,以3节点为例进行搭建,角色分配如下: hdp-node-01 NameNode SecondaryNameNode Re