Hadoop学习笔记-Yarn(2)-Yarn命令行操作与参数配置

Yarn常用命令

1.任务查看

1
2
3
4
5
6
7
8
// 列出所有的Application
yarn application -list

// 根据Application状态进行过滤
yarn application -list -appStates 状态

// 根据application_id来kill掉Appliation
yarn application -kill application_id
  • 任务的所有状态有:ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED

2.日志查看

1
2
3
4
5
// 查询Application日志
yarn logs -applicationId application_id

// 查询Container日志
yarn logs -applicationId application_id -containerId container_id
  • application_id可以通过任务查看得到,container_id可以通过容器查看得到

3.运行任务查看

1
2
3
4
5
// 列出所有Application尝试的列表
yarn applicationattempt -list application_id

// 打印ApplicationAttempt状态
yarn applicationattempt -status application_id

4.容器查看

1
2
3
4
5
// 列出某个application的所有container
yarn container -list application_id

// 打印Container的状态
yarn container -status container_id
  • 注意只有任务在运行的过程中才能看到Container的状态,因为任务运行完成之后Container会释放

5.节点状态查看

1
2
// 列出所有节点
yarn node -list -all

6.队列查看

1
2
// 打印队列信息
yarn queue -status QueueName
  • QueueName即在调度器中的队列名称

7.队列配置更新

1
2
// 更新队列配置
yarn rmadmin -refreshQueues
  • 只有队列配置信息更新之后可以刷新

  • 如果更改了Yarn配置的话则无法使用这个命令刷新,需要重启Yarn

Yarn重要参数配置

1)ResourceManager相关

  • yarn.resourcemanager.scheduler.class:配置调度器,默认为容量调度器
  • yarn.resourcemanager.client.thread-count:ResourceManager用来处理调度器请求的线程数量,默认为50

2)NodeManager相关

  • yarn.nodemanager.resource.detect-hardware-capabilities:是否让yarn自动检测硬件进行配置,默认为false

  • yarn.nodemanager.resource.count-logical-processors-as-cores:是否将虚拟核数当作CPU核数,默认为false

  • yarn.nodemanager.resource.pcores-vcores-multiplier:虚拟核数与物理核数的比例

  • yarn.nodemanager.resource.memory-mb:NodeManager使用内存,默认为8G

  • yarn.nodemanager.resource.system-reserved-memory-mb:NodeManager为系统保留多少内存

    上面两个参数只需要配置一个即可

  • yarn.nodemanager.resource.cpu-vcores:NodeManager使用CPU核数,默认为8个

  • yarn.nodemanager.pmem-check-enabled:是否开启物理内存检查限制container,默认打开

  • yarn.nodemanager.vmem-check-enabled:是否开启虚拟内存检查限制container,默认打开

  • yarn.nodemanager.vmem-pmem-ratio:虚拟内存与物理内存比例,默认为2:1

3)Container相关

  • yarn.scheduler.minimum-allocation-mb:容器最小内存,默认1G
  • yarn.scheduler.maximun-allocation-mb:容器最大内存,默认8G
  • yarn.scheduler.minimum-allocation-vcores:容器最小CPU核数,默认1个
  • yarn.scheduler.maximum-allocation-vcores:容器最大CPU核数,默认4个

以上配置信息可以在yarn-site.xml中进行配置。

调度器配置

容量调度器和公平调度器默认情况下都只有一个default队列,不能满足生产要求。可以在配置文件中配置多队列。

配置多队列可以防止单个任务将所有资源全部耗尽;并且可以实现任务的降级使用,在特殊时期保证重要的任务队列资源充足

  1. 容量调度器配置:相关配置在$HADOOP_HOME/etc/hadoop/capacity-scheduler.xml中,可以配置多队列、配置每个队列的最低和最大使用资源、队列使用权限、队列优先级、任务超时设置等

  2. 公平调度器配置:公平调度器的配置默认在Apache Hadoop中没有,需要自己创建配置文件,然后在yarn-site.xml文件中指定相关的配置信息,同样可以配置队列相关的信息

通过-D来表示运行时改变参数值,例如:

1
-D mapreduce.job.queuename=xxx

附加:Yarn的Tool接口,动态参数传递的同时,允许-D来添加运行参数值


Hadoop学习笔记-Yarn(2)-Yarn命令行操作与参数配置
http://example.com/2022/02/23/Hadoop学习笔记-Yarn-2-Yarn命令行操作与参数配置/
作者
EverNorif
发布于
2022年2月23日
许可协议