欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

分布式资源管理与任务调度框架Yarn

时间:2023-06-19

在Hadoop1.x中MapReduce是Master/Slave结构.1个JobTracker带多个TaskTracker,我们称之为MRv1。

JobTracker主要功能

资源管理

任务调度

T   askTracker主要功能

执行任务,响应JobTracker命令

汇报心跳

  主要问题

JobTracker单点故障,如果它挂掉,整个系统无法运转

JobTracker负载过重

仅支持MR计算框架,适合批处理、基于磁盘的计算

资源与计算没有很好的解耦设计,一个集群只能使用一个计算框架

Yarn特点

资源管理与计算框架解耦设计,一个集群资源共享给上层各个计算框架

集群内数据共享一致,数据不再需要集群间拷贝转移,达到共享互用

避免单点故障、集群资源扩展得到合理解决

Yarn的运行流程

ResourceManger(资源管理):

ResourceScheduler(资源调度)

AplicationsManger(进程管理)

NodeManger节点资源管理

ApplicationMaster 任务管理

Task  任务运行的地方

 

Client端向ResourceManger提交作业,其中包括applicationMaster程序,启动applicationMaste的命令

    ResourceManger为作业分配第一个Container,也就是分配一个容器,并与相对应的NodeManger通信,使NodeManger在这个容器中启动该作业的ApplicationMaster

    NodeManger启动一个Container运行ApplicationMaster

ApplicationMaster首先向REsourceManger注册,这样用户就可以通过ResourceManger来查询作业的运行状态,ApplicationMaster将向ResourceManger申请各个任务申请资源,并监控任务的运行状态

ApplicationMaster拿到资源后与对应的NodeManger通信,启动任务

NodeManger 接收ApplicationMaster命令,启动Contain任务

各个Container通过RPC向ApplicationMaster汇报任务状态和任务进度,所以ApplicationMaster可以在任务失败时重新启动任务

作业完成后,ApplicationMaster向ResourceMangerous申请注销关闭自己

ResourceManger 监控NodeMangerous 和ApplicationMaster

NodeManger 周期性向ResourceManger汇报资源使用情况,以及运行状态

ApplicationMaster监控任务,可以使NodeManger重启任务

一个应用程序所需的Container分为两大类,如下:

(1) 运行ApplicationMaster的Container:这是由ResourceManager(向内部的资源调度器)申请和启动的,用户提交应用程序时,可指定唯一的ApplicationMaster所需的资源;

(2) 运行各类任务的Container:这是由ApplicationMaster向ResourceManager申请的,并由ApplicationMaster与NodeManager通信以启动之。

以上两类Container可能在任意节点上,它们的位置通常而言是随机的,即ApplicationMaster可能与它管理的任务运行在一个节点上。

调度策略

     FIFO  先进先出

 Capacity Scheduler(容器调度器) 跑道一般,不许占用

Fair Scheduler(公平调度器) 允许别人占用,但当自己使用是,会使别人丢失部分数据

Yarn shell指令

查看版本信息:yarn version

使用yarn命令提交jar包:

yarn jar jarName mainClassPath -Dk1=v1 -Dk2=v2 inputPath outputPath

查看所有application列表信息:yarn application -list

杀掉指定的application,使用命令:yarn application kill app-id

查看yarn的当前资源使用情况:yarn top

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。