Yarn

2021-05-22  本文已影响0人  圆企鹅i

Yarn

另一种资源协调者(Yet Another Resource Negotiator)

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

组成

  1. Client 提交任务、终止任务

  2. Resource Manager(简称RM)统一管理和调度

    AM向RM申请资源。Application Master向Resource Manager申请资源用于在NodeManager上启动相应的任务

    监控AM,挂了换个机器的AM。启动/监控Application Master;一旦某个AM出故障,RM将会在另外一个节点上启动该AM。

    监控NM,出问题了指挥AM处理。监控Node Manager,接收Node Manager汇报的心跳信息并分配任务给NodeManager去执行;一旦某个NM出故障,标记一下该NM上的任务,来告诉对应的AM如何处理。

  3. Node Manager(简称NM)负责单节点资源管理和使用。

    Node Manager通过心跳信息向Resource Manager汇报自身的健康状况、任务执行情况、领取任务情况等

    接收并处理来自Resource Manager的Container启动/停止的各种命令。

  4. Application Master(简称AM):应用程序

    数据切分。

    为应用程序/作业向ResourceManager申请资源(Container),并分配给内部任务。

    与NodeManager通信以启动/停止任务。任务监控和容错(在任务执行失败时重新为该任务申请资源以重启任务)。

    处理ResourceManager发过来的命令:终止Container、让NodeManager重启等。

  5. Container

    对任务运行环境的抽象。

    任务运行资源(节点、内存、CPU)。

    任务启动命令。任务运行环境。

    任务是运行在Container中,一个Container中既可以运行Application Master,也可以运行具体的Map、Reduce、MPI、Spark Task。

任务提交

image-28880211218190005210 其他资料 image

)

4564646
RM自动重启
image

调度算法

Capacity Scheduler是Yahoo开发的多用户调度器。

FIFO

先进先出。

按照时间排序,先到的先服务。

Capacity Scheduler (default)

Capacity Scheduler是Yahoo开发的多用户调度器。

  1. 多队列

  2. 优先选资源占用少的队列

  3. 优先选最近提交的任务

  4. 分配的任务优先分配HDFS有副本的机器

image image

Fair Scheduler

Fair Schedulere是Facebook开发的多用户调度器。

image

shell

##### 查询
#列出所有Application
yarn application -list

#根据Application状态过滤
yarn application -list -appStates <status:ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED>

#yarn logs查看日志
yarn logs -applicationId <id:application_1612577921195_0001>

#查看容器
yarn container -list <ApplicationAttemptId>
#查看容器状态
yarn container -status <ApplicationAttemptId>

#节点状态
yarn node -list -all

#查看队列
yarn queue -status <QueueName>
上一篇 下一篇

猜你喜欢

热点阅读