Yarn 命令 和 资源配置

一、 用户命令

  1. 1) application 管理
  2. (1) 查看作业列表
  3. yarn application -list
  4. (2) 删除应用
  5. yarn application -kill <application_id> 删除应用
  6. 2) application logs
  7. yarn logs -applicationId xxxxxxx : 根据 applicationId id 查询运行完成的应用日志
  8. $HADOOP_HOME/conf/yarn-default.xml
  9. (1) yarn.log-aggregation-enable=true : 是否开启日志聚合
  10. 默认 : false
  11. a) yarn.nodemanager.log.retain-seconds=86400 : (秒数,保留 NodeManager 本地的日志的时间)
  12. b) yarn.nodemanager.log-dirs=file:///data/yarn/logs : 日志本地目录
  13. 默认 : ${yarn.log.dir}/userlogs
  14. 当为 true 时:
  15. a) yarn.nodemanager.remote-app-log-dir=/tmp/logs : 日志聚合保存在 HDFS
  16. b) yarn.nodemanager.remote-app-log-dir-suffix=logs : 日志前缀
  17. c) yarn.log-aggregation.retain-seconds=86400 : (秒数,表示多少秒删除一次日志,86400 表示一天删除一次,-1 表示不删除)
  18. d) yarn.log-aggregation.retain-check-interval-seconds=86400 : (秒数,表示多久检查一次是否保留汇聚的日志,86400 表示一天检查一次,-1 表示不检查)
  19. (2) application 任务完成后的归档日志
  20. hdfs dfs -ls /var/log/hadoop-yarn/apps
  21. (3) application 正在运行的日志
  22. NodeManager /data/yarn/logs
  23. (4) yarn 本地运行日志
  24. cd /var/log/hadoop-yarn/
  25. tail -f yarn-hadoop-resourcemanager-uhadoop-ociicy-master1.log
  26. 3) node 输出节点报告
  27. (1) 列出所有正在运行的节点
  28. yarn node -list
  29. (2) 输出节点的状态报告
  30. yarn node -status uhadoop-ociicy-task3:33616
  31. 4) jar 运行一个 jar 文件。
  32. yarn jar <jar> [mainClass] args
  33. 5) yarn version
  34. 输出 Yarn 版本
  35. 6) yarn classpath
  36. 打印所需的类路径获取Hadoop jar和所需的库

MapReduce 命令:

  1. 1) 查看 job 任务
  2. mapred job -list
  3. 2) 将正在运行的 hadoop 作业kill
  4. mapred job kill [job-id]
  5. 3) 查看 job 状态
  6. mapred job -status [job-id]
  7. 4) 内存
  8. $HADOOP_HOME/conf/mapred-site.xml
  9. 5) 重启 historyserver
  10. service hadoop-mapreduce-historyserver start

二、 管理命令

  • yarn rmadmin -help
  1. 1) 增加或关闭 Yarn 节点
  2. yarn rmadmin -refreshNodes 刷新节点
  3. (1) yarn.resourcemanager.nodes.include-path : 一个路径文件 , 指定 ResourceManager 接受的 Node 列表 ,默认空
  4. example:
  5. 10.10.10.11
  6. 10.10.10.10
  7. (2) yarn.resourcemanager.nodes.exclude-path : 一个路径文件 , 指定 ResourceManager 不会接受使用的 Node 列表 ,默认空
  8. example:
  9. 10.10.10.12
  10. 10.10.10.13
  11. 2) Capacity 调度器配置
  12. yarn rmadmin -refreshQueues 刷新调度器配置
  13. $HADOOP_HOME/conf/capacity-scheduler.xml : 配置文件
  14. 3) JobHistoryServer Yarn 上所有 MapReduce 作业历史服务器
  15. $HADOOP_HOME/conf/mapred-default.xml
  16. (1) mapreduce.jobhistory.address=xxx.xxx.xxx.xxx:10020
  17. 日志服务器的 ip port
  18. (2) mapreduce.jobhistory.cleaner.enable=true
  19. 清理作业历史
  20. (3) mapreduce.jobhistory.done-dir=${yarn.app.mapreduce.am.staging-dir}/history/done
  21. 完成后的日志目录
  22. 5) 更新用户到用户组的映射
  23. yarn rmadmin -refreshUserToGroupsMappings
  24. $HADOOP_HOME/conf/core-default.xml
  25. (1) hadoop.security.group.mapping
  26. 6) 刷新超级用户代理组映射
  27. yarn rmadmin -refreshSuperUserGroupsConfiguration
  28. $HADOOP_HOME/conf/core-default.xml
  29. 7) 更新 ResourceManager 管理的 ACL (Access Control List 访问控制列表)
  30. yarn rmadmin -refreshAdminAcls
  31. $HADOOP_HOME/conf/yarn-default.xml
  32. (1) yarn.acl.enable=true
  33. 启用 ACL
  34. (2) yarn.admin.acl
  35. 指定某个账号可以成为集群的管理者
  36. example:
  37. yarn.admin.acl=user1,user2 group1,group2
  38. 用户用 ',' 号分割
  39. 用户组用 ',' 号分割
  40. 用户和用户组用 ' ' 空格分开,空格左边是用户,空格右边是用户组
  41. 8) 重新加载服务级授权策略文件
  42. yarn rmadmin -refreshServiceAcl
  43. 9) 获取节点状态
  44. yarn rmadmin -getServiceState rm1
  45. 10) 切换活动节点
  46. yarn rmadmin -transitionToActive rm1
  47. * 其他管理命令
  48. 1) 启动 ResourceManager (ResourceManager 节点启动)
  49. yarn resourcemanager
  50. $HADOOP_HOME/conf/yarn-default.xml
  51. (1) ApplicationMaster -> ResourceManager 申请 最小/最大 内存数 (一个容器), 可为容器请求的最大物理内存数量
  52. yarn.scheduler.minimum-allocation-mb=1024 : 最小可申请内存量,默认是1024
  53. yarn.scheduler.maximum-allocation-mb=25600 : 最大可申请内存量,默认是 8096
  54. (2) ApplicationMaster -> ResourceManager 申请 最小/最大 CPU 核数 (一个容器), 容器可以请求的虚拟 CPU 内核的最大数量
  55. yarn.scheduler.minimum-allocation-vcores=1 : 最小可申请CPU数,默认是1
  56. yarn.scheduler.maximum-allocation-vcores=8 : 最大可申请CPU数,默认是 4
  57. 2) 启动 NodeManager (NodeManager 节点启动)
  58. yarn nodemanager
  59. $HADOOP_HOME/conf/yarn-default.xml
  60. (1) NodeManager -> ResourceManager 注册节点时到集群的最大 内存, 只需给系统保留 4G 的容量给系统
  61. yarn.nodemanager.resource.memory-mb=25600 : 节点最大可用内存, 25 G
  62. (2) NodeManager -> ResourceManager 注册节点时到集群的最大 CPU
  63. yarn.nodemanager.resource.cpu-vcores=8 : 节点最最大可用 CPU
  64. 3) 启动 proxyserver web 代理服务器
  65. yarn proxyserver
  66. 4) 获取/设置每个守护进程的日志级别
  67. (1) yarn daemonlog -getlevel <host:port> <name>
  68. (2) yarn daemonlog -setlevel <host:port> <name> <level>

三、Balancer 平衡数据

  • 增加节点后的平和数据
  1. hdfs getconf -confKey dfs.balance.bandwidthPerSec
  2. 查看存储节点情况
  3. hdfs dfsadmin -report
  4. 设置负载的带宽
  5. hdfs dfsadmin -setBalancerBandwidth 524288000
  6. 开始均衡 threshold 一般10 即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5%
  7. $HADOOP_HOME/sbin/start-balancer.sh -threshold 5

四、平滑下节点

  • 下掉指定节点

1. 设置需要下的节点

  • 配置需要下的 data node 节点
  1. <property>
  2. <name>dfs.namenode.replication.work.multiplier.per.iteration</name>
  3. <value>10</value>
  4. </property>
  5. <property>
  6. <name>dfs.namenode.replication.max-streams</name>
  7. <value>50</value>
  8. </property>
  9. <property>
  10. <name>dfs.namenode.replication.max-streams-hard-limit</name>
  11. <value>100</value>
  12. </property>
  13. <!-- 设置需要下的节点, 一行一行写节点 -->
  14. <property>
  15. <name>dfs.hosts.exclude</name>
  16. <value>/home/hadoop/conf/excludes</value>
  17. </property>
  18. yarn rmadmin -refreshNodes

* ucloud 重启节点 管理

1. 重启 resourcemanager 步骤

  1. 1. 查看节点状态
  2. yarn rmadmin -getServiceState rm1
  3. yarn rmadmin -getServiceState rm2
  4. 在状态是 standby 的节点修改配置 运行重启命令
  5. 2. 重启 resourcemanager 命令
  6. sudo service hadoop-yarn-resourcemanager restart

2. 重启 nodemanager 步骤

  1. service hadoop-yarn-nodemanager restart