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(公平调度器)
公平调度器的目的就是为所有运行的应用公平分配资源。使用公平调度器时,不需要预留一定量的资源,因为调度器 会在所有运行的作业之间动态平衡资源,第一个(大)作业启动时,它也是唯一运行的作业,因而获得集群中的所有 资源,当第二个(小)作业启动时,它被分配到集群的一半资源,这样每个作业都能公平共享资源。
如图所示,就像是把好几个任务拼接成了一个任务,可以充分利用资源,同时又不会因为大任务在前面执行而导致小任务一直无法完成
文章来源:https://blog.csdn.net/HYSliuliuliu/article/details/134947795
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!