yarn命令_yarn的三种调度器

2023-12-13 11:14:29
yarn命令
yarn三种调度器

1.4. YARN的命令

  • yarn top

类似于Linux的top命令,查看正在运行的程序资源占用情况。
  • yarn queue -status root.default

查看指定队列使用情况,下文会讲解任务队列
  • yarn application

    • -list

# 通过任务的状态,列举YARN的任务。使用 -appStates 指定状态
# 任务状态: ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED
?
# e.g.
# 查看所有正在运行的任务
[root@qianfeng01 ~]# yarn application -list -appStates RUNNING
# 查看所有的失败的任务
[root@qianfeng01 ~]# yarn application -list -appStates FAILED
  • -movetoqueue

# 将一个任务移动到指定的队列中
[root@qianfeng01 ~]# yarn application -movetoqueue application_xxxxxx_xxx -queue root.small
  • -kill

# 杀死指定的任务
[root@qianfeng01 ~]# yarn application -kill application_xxxxxx_xxx
  • yarn container

    • -list

# 查看正在执行的任务的容器信息
[root@qianfeng01 ~]# yarn container -list application_xxxxxx_xxx
  • -status

# 查看指定容器信息
[root@qianfeng01 ~]# yarn container -status container_xxxxx
  • yarn jar

# 提交任务到YARN执行
[root@qianfeng01 ~]# yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar /input /output
  • yarn logs

# 查看YARN的程序运行时的日志信息
[root@qianfeng01 ~]# yarn logs -applicationId application_1528080031923_0064
  • yarn node -all -list

查看所有节点信息

1.5. YARN的三种调度器

1.5.1 什么是Scheduler(调度器)
Scheduler即调度器,根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。
1.5.2 YARN提供的三种内置调度器:
1.5.2.1. FIFO Scheduler(FIFO调度器)
FIFO 为 First Input First Output 的缩写,先进先出。FIFO 调度器将应用放在一个队列中,按照先 后顺序
运行应用。这种策略较为简单,但不适合共享集群,因为大的应用会占用集群的所有资源,每个应用必须等待直到轮到自己。 ?
?
优点:简单易懂,不需要任何配置 ?
缺点:不适合共享集群,大的应用会占据集群中的所有资源,所以每个应用都必须等待,直到轮到自己执行。

如下图所示,只有当job1全部执行完毕,才能开始执行job2

1.5.2.2. Capacity Scheduler(容量调度器)
容量调度器 Capacity Scheduler 允许多个组织共享一个 Hadoop 集群。使用容量调度器时,一个独立的专门队列保证小作业一提交就可以启动。
?
优点:小任务不会因为前面有大任务在执行,而只能一直等下去
缺点:这种策略是以整个集群利用率为代价的,这意味着与使用FIFO调度器相比,大作业执行的时间要长上一些。

如图所示,专门留了一部分资源给小任务,可以在执行job1的同时,不会阻塞job2的执行,但是因为这部分资源是一直保留给其他任务的,所以就算只有一个任务,也无法为其分配全部资源,只能让这部分保留资源闲置着,有着一定的资源浪费问题。

1.5.2.3. Fair Scheduler(公平调度器)
公平调度器的目的就是为所有运行的应用公平分配资源。使用公平调度器时,不需要预留一定量的资源,因为调度器
会在所有运行的作业之间动态平衡资源,第一个(大)作业启动时,它也是唯一运行的作业,因而获得集群中的所有
资源,当第二个(小)作业启动时,它被分配到集群的一半资源,这样每个作业都能公平共享资源。

如图所示,就像是把好几个任务拼接成了一个任务,可以充分利用资源,同时又不会因为大任务在前面执行而导致小任务一直无法完成

Guff_hys_python数据结构,大数据开发学习,python实训项目-CSDN博客

文章来源:https://blog.csdn.net/HYSliuliuliu/article/details/134947795
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。