Yarn
另一种资源协调者(Yet Another Resource Negotiator)
Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。
组成
-
Client 提交任务、终止任务
-
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如何处理。
-
Node Manager(简称NM)负责单节点资源管理和使用。
Node Manager通过心跳信息向Resource Manager汇报自身的健康状况、任务执行情况、领取任务情况等
接收并处理来自Resource Manager的Container启动/停止的各种命令。
-
Application Master(简称AM):应用程序
数据切分。
为应用程序/作业向ResourceManager申请资源(Container),并分配给内部任务。
与NodeManager通信以启动/停止任务。任务监控和容错(在任务执行失败时重新为该任务申请资源以重启任务)。
处理ResourceManager发过来的命令:终止Container、让NodeManager重启等。
-
Container
对任务运行环境的抽象。
任务运行资源(节点、内存、CPU)。
任务启动命令。任务运行环境。
任务是运行在Container中,一个Container中既可以运行Application Master,也可以运行具体的Map、Reduce、MPI、Spark Task。
任务提交
image-28880211218190005210 其他资料 image)
4564646RM自动重启
image调度算法
Capacity Scheduler是Yahoo开发的多用户调度器。
FIFO
先进先出。
按照时间排序,先到的先服务。
Capacity Scheduler (default)
Capacity Scheduler是Yahoo开发的多用户调度器。
-
多队列
-
优先选资源占用少的队列
-
优先选最近提交的任务
-
分配的任务优先分配HDFS有副本的机器
Fair Scheduler
Fair Schedulere是Facebook开发的多用户调度器。
imageshell
##### 查询
#列出所有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>
网友评论