1.调度器
在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,FairScheduler。
1.1 FIFO先进先出,一个的简单调度器,适合低负载集群。(适合任务数量不多的情况下使用)。示例:1job先提交,会运行1job,过一会,2job提交了,需要等1job运行完才可以运行2job
1.2 Capacity调度器,给不同队列(即用户或用户组)分配一个预期最小容量,在每个队列内部用层次化的FIFO来调度多个应用程序。(适用于有很多小的任务跑,需要占很多队列,不使用队列,会造成资源的浪费)。
示例:1job提交了,运行1job,过一会,2job提交了,会在另一个队列进行2job的计算,不需要等待1job完成。
1.3 Fair公平调度器,针对不同的应用(也可以为用户或用户组),每个应用属于一个队列,主旨是让每个应用分配的资源大体相当。(当然可以设置权重),若是只有一个应用,那集群所有资源都是他的。适用情况:共享大集群、队列之间有较大差别。(生产使用)
示例:1job先提交了,过一会,2job也提交了,从2job提交到获得资源会有一定的延迟,因为它需要等待1job释放占用的Container。当2job执行完成之后也会释放自己占用的资源,1job又获得了全部的系统资源。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/00d2125e7e5136912e41305ba7e6438a.png)
2常用命令
mapred
1[hadoop@hadoop001 bin]$ mapred
2Usage: mapred [--config confdir] COMMAND
3 where COMMAND is one of:
4 job manipulate MapReduce jobs
5 [hadoop@hadoop001 bin]$ mapred job
6Usage: CLI <command> <args>
7 [-kill <job-id>] 杀死正在运行的job
8 [-list [all]] 查看正在运行的job
yarn
1[hadoop@hadoop001 bin]$ yarn
2Usage: yarn [--config confdir] COMMAND
3where COMMAND is one of:
4 version print the version
5 jar <jar> run a jar file 跑一个jar任务
6 application prints application(s)
7[hadoop@hadoop001 bin]$ yarn application
819/07/14 14:29:52 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
9Invalid Command Usage :
10usage: application
11 -kill <Application ID> Kills the application. 杀死正在运行的job
12 -list List applications. Supports optional use
13 of -appTypes to filter applications based
14 on application type, and -appStates to
15 filter applications based on application
16 state. 查看正在运行的job