YARN基础一:基本架构和启动过程

YARN基础一:基本架构和启动过程,第1张

step1:client请求Rescouce Manager运行一个 Application Master实例

step2:Rescource Manager 选择一个Node Manager,启动一个Container并运行Application Master实例(step 2a,step 2b);

step3:Application Master根据实际需要向RM请求更多的Container资源

step4:AM通过获取到的Container资源执行分布式计算(step4a、step4b)

RM:Resource Manager ;

1、RM处理客户端请求,接收JobSubmitter提交的作业(上图step1),按照作业的上下文(Context)信息,以及从NodeManage让(NM)收集来的状态信息,启动调度过程,分配一个粗迅睁Container作为App Master

2、RM拥有为系统中所有应用资源分配的决定权,是中心服务,做的事情就是调度、启动每一个Job所属是Application(AM),另外监控AM的存在情况

3、与运行在每个节点上的NM进程交互,通过心跳通信,达到监控NM的目的

4、RM有一个可插拔的调度器组件Scheduler

——Scheduler是一个纯粹的调度器(只负责任务的调度)

NM:Node Manager

1、是slave进程,是每个节点框架代理

2、处理来自RM的任务请求

3、接收并处理来自AM的Container启动、停止等各种请求

4、其责启动应用程序的Container(执行应用程序的容器),并监控他们的资源使用情况(CPU、内存、磁盘、网络),并报告给RM

5、总而言之,在单节点上进行资源管理和任务管理

AM:Application Master,

1、应用程序的Master,每一个应用对用一个AM,在用户提交一个应用程序时,一个AM是轻量行进程实例会启动(Step2),AM协调应用程序内的所有任务执行(多个MAP/REDUCE)

2、负责一个Job生命周期内的所有工作,监控job执行状态和进度,如果任务失败,则重新启动任务

3、每一个job都有一个AM,运行在RM以外的机器上

4、与RM协商资源

——与Scheduler协商合适的Container

5、与NM协同工作,进行Container的监控

6、是一个普通Container的身份运行

Container

1、是任务运行环境的抽象封装

2、Container只是使用NM上指定资源的权利

3、AM必须向NM提供更多的信息来启动Container

4、描述任务的运行资源(节点、内存、cpu)

应用:YARN上的应用按其运行的生命周期的长短可分为长应用和短引用

1、短应用昌姿通常是分析作业,作业从提交到完成,所耗时间是有限的,作业完成后,其占用的资源就会被释放,归还给YARN再次分配

2、长应用通常是一些服务,启动后除非意外或人为终止,将一直运行下去,长应用通常长期暂用集群上的一些资源,且运行期间对资源的需求也时常变化。

下面再贴一个从别人那里引用过来的图和过程;更详细的启动过程见链接

https://www.cnblogs.com/admln/p/hadoop2-work-excute-yarn.html

用户向YARN提交一个应用程序后,YARN将分为两个阶段运行该应用程序:第一个阶段是启动ApplicationMaster;第二个阶段是由ApplicationMaster创建应用程序,为它申请资源,并监控它的整个运行过程,直到运行成功。

YARN的工作流程可以分为以下几个步骤:

1.用户向YARN提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等;

2.ResourceManager为该应用程序分配第一个Container,并与对应的NodeManager通信,要求它在岩岁这个Container中启动应用程序的ApplicationMaster;

3.ApplicationMaster启动后首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7;

4.ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源;

5.一旦ApplicationMaster申请到资源后,则与对应的NodeManager通信,要求其启动任务;

6.NodeManager为任务设置好运行环境(包括环境变量、jar包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务;

7.各个任务通过某RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。

在应用程序运行过程中,用户可以随时通过RPC向ApplicationMaster查询应用程序的当前运行状态;

8.应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。

1.在cmd下输入“npm install create-react-app yarn -g”

2.在指定项目目录下输入 create-react-app your_project_name 

例如“create-react-app react_test” (注意项目名称不能有大写字母)

安装完成之后提示如下图所示

3.切换到刚刚安装时创建的文件夹,输入“yarn start”测试安装是否成功,安装成功则会调成一个页面

4.切换到刚刚安装时创建的文件夹,输入“ yarn add antd --save”安装antdesign

打开package.json可以看到antd已成功安装

此时,我们可以在编辑器中打烂明开项目文件夹(此处是vs code),可以清晰的看到create-react-app的生成目录:

此时,系统已经为我们生成了基础的页面(也就是App.js中的组件所展现出来的)

在目录文件夹下拆锋运行“yarn start”命令,基础页面也就是react的logo等,此时的页面长这样:

然后我们就可以在render中引入新的组件渲染我们需要的页面了。例如:

此处我们通过import从antd中按需导入了Button组件,然后在render中渲染,运行“yarn start”指令得到如下页面:

可以看到页面中新增了一个button,至此基础的开发就是这样了,其他需要的组件,旅历晌需要调整的样式可自行添加。

一、YARN框架简介

YARN:Yet Another Resource Negotiator 通用的资源管理系统。为上一层的mapreduce,spark等任务服务提供统一的资源管理和调度。

YARN 是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、 NodeManager(NM)、ApplicationMaster(AM)。 ResourceManager 负责所有资源的监控、分配和管理; ApplicationMaster 负责每一个具体应用程序的调度和协调; NodeManager 负责每一个节点的维护。 对于所有的 applications,RM 拥有绝对的控制权和对资源的分配权。而每个 AM 则会和 RM 协商资源,同时和 NodeManager 通信来执行和监控 task。

Yarn是Master/slave主从结构,通过主从管理关系,对所有的计算框架运行在一个集群中,共享一个集群的资源进行按需分配,提高资源的利用率。

二、yarn的运行流程

步骤1 用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。侍答

步骤2 ResourceManager为该应用程序分配第一个Container,并与对应的Node-Manager通信,要求它在这个Container中启动应用程序的ApplicationMaster。

步骤3 ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后老雹慧它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7。

步骤4 ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。

步骤5 一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务。

步骤6 NodeManager为任务设置肆竖好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。

步骤7 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。 在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。

步骤8 应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。

三、yarn的配置

1.修改配置文件mapred-site.xml,配置mapreduce作业任务交个yarn框架进行管理

vim /opt/mysoft/hadoop/etc/hadoop/mapred-site.xml

2.修改配置文件yarn-site.xml

vim  /opt/mysoft/hadooop/etc/hadoop/yarn-site.xml

3.配置完成之后启动服务

   start-yarn.sh

4.检查启动是否成功,通过jps查看进程 ResourceManager,NodeManager

5.通过http://hadoop00:8088查看webUI界面上yarn的运行画面

6.提交mapreduce作业,到yarn集群环境,查看任务执行情况。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8184365.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存