Yarn 命令 和 资源配置
一、 用户命令
1) application 管理(1) 查看作业列表yarn application -list(2) 删除应用yarn application -kill <application_id> 删除应用2) application logsyarn logs -applicationId xxxxxxx : 根据 applicationId id 查询运行完成的应用日志$HADOOP_HOME/conf/yarn-default.xml(1) yarn.log-aggregation-enable=true : 是否开启日志聚合默认 : falsea) yarn.nodemanager.log.retain-seconds=86400 : (秒数,保留 NodeManager 本地的日志的时间)b) yarn.nodemanager.log-dirs=file:///data/yarn/logs : 日志本地目录默认 : ${yarn.log.dir}/userlogs当为 true 时:a) yarn.nodemanager.remote-app-log-dir=/tmp/logs : 日志聚合保存在 HDFS 中b) yarn.nodemanager.remote-app-log-dir-suffix=logs : 日志前缀c) yarn.log-aggregation.retain-seconds=86400 : (秒数,表示多少秒删除一次日志,86400 表示一天删除一次,-1 表示不删除)d) yarn.log-aggregation.retain-check-interval-seconds=86400 : (秒数,表示多久检查一次是否保留汇聚的日志,86400 表示一天检查一次,-1 表示不检查)(2) application 任务完成后的归档日志hdfs dfs -ls /var/log/hadoop-yarn/apps(3) application 正在运行的日志NodeManager 的 /data/yarn/logs 中(4) yarn 本地运行日志cd /var/log/hadoop-yarn/tail -f yarn-hadoop-resourcemanager-uhadoop-ociicy-master1.log3) node 输出节点报告(1) 列出所有正在运行的节点yarn node -list(2) 输出节点的状态报告yarn node -status uhadoop-ociicy-task3:336164) jar 运行一个 jar 文件。yarn jar <jar> [mainClass] args5) yarn version输出 Yarn 版本6) yarn classpath打印所需的类路径获取Hadoop jar和所需的库
MapReduce 命令:
1) 查看 job 任务mapred job -list2) 将正在运行的 hadoop 作业kill掉mapred job –kill [job-id]3) 查看 job 状态mapred job -status [job-id]4) 内存$HADOOP_HOME/conf/mapred-site.xml5) 重启 historyserverservice hadoop-mapreduce-historyserver start
二、 管理命令
- yarn rmadmin -help
1) 增加或关闭 Yarn 节点yarn rmadmin -refreshNodes 刷新节点(1) yarn.resourcemanager.nodes.include-path : 一个路径文件 , 指定 ResourceManager 接受的 Node 列表 ,默认空example:10.10.10.1110.10.10.10(2) yarn.resourcemanager.nodes.exclude-path : 一个路径文件 , 指定 ResourceManager 不会接受使用的 Node 列表 ,默认空example:10.10.10.1210.10.10.132) Capacity 调度器配置yarn rmadmin -refreshQueues 刷新调度器配置$HADOOP_HOME/conf/capacity-scheduler.xml : 配置文件3) JobHistoryServer Yarn 上所有 MapReduce 作业历史服务器$HADOOP_HOME/conf/mapred-default.xml(1) mapreduce.jobhistory.address=xxx.xxx.xxx.xxx:10020日志服务器的 ip 和 port(2) mapreduce.jobhistory.cleaner.enable=true清理作业历史(3) mapreduce.jobhistory.done-dir=${yarn.app.mapreduce.am.staging-dir}/history/done完成后的日志目录5) 更新用户到用户组的映射yarn rmadmin -refreshUserToGroupsMappings$HADOOP_HOME/conf/core-default.xml(1) hadoop.security.group.mapping6) 刷新超级用户代理组映射yarn rmadmin -refreshSuperUserGroupsConfiguration$HADOOP_HOME/conf/core-default.xml7) 更新 ResourceManager 管理的 ACL (Access Control List 访问控制列表)yarn rmadmin -refreshAdminAcls$HADOOP_HOME/conf/yarn-default.xml(1) yarn.acl.enable=true启用 ACL(2) yarn.admin.acl指定某个账号可以成为集群的管理者example:yarn.admin.acl=user1,user2 group1,group2用户用 ',' 号分割用户组用 ',' 号分割用户和用户组用 ' ' 空格分开,空格左边是用户,空格右边是用户组8) 重新加载服务级授权策略文件yarn rmadmin -refreshServiceAcl9) 获取节点状态yarn rmadmin -getServiceState rm110) 切换活动节点yarn rmadmin -transitionToActive rm1* 其他管理命令1) 启动 ResourceManager (ResourceManager 节点启动)yarn resourcemanager$HADOOP_HOME/conf/yarn-default.xml(1) ApplicationMaster -> ResourceManager 申请 最小/最大 内存数 (一个容器), 可为容器请求的最大物理内存数量yarn.scheduler.minimum-allocation-mb=1024 : 最小可申请内存量,默认是1024yarn.scheduler.maximum-allocation-mb=25600 : 最大可申请内存量,默认是 8096(2) ApplicationMaster -> ResourceManager 申请 最小/最大 CPU 核数 (一个容器), 容器可以请求的虚拟 CPU 内核的最大数量yarn.scheduler.minimum-allocation-vcores=1 : 最小可申请CPU数,默认是1yarn.scheduler.maximum-allocation-vcores=8 : 最大可申请CPU数,默认是 42) 启动 NodeManager (NodeManager 节点启动)yarn nodemanager$HADOOP_HOME/conf/yarn-default.xml(1) NodeManager -> ResourceManager 注册节点时到集群的最大 内存, 只需给系统保留 4G 的容量给系统yarn.nodemanager.resource.memory-mb=25600 : 节点最大可用内存, 25 G(2) NodeManager -> ResourceManager 注册节点时到集群的最大 CPUyarn.nodemanager.resource.cpu-vcores=8 : 节点最最大可用 CPU 数3) 启动 proxyserver web 代理服务器yarn proxyserver4) 获取/设置每个守护进程的日志级别(1) yarn daemonlog -getlevel <host:port> <name>(2) yarn daemonlog -setlevel <host:port> <name> <level>
三、Balancer 平衡数据
- 增加节点后的平和数据
hdfs getconf -confKey dfs.balance.bandwidthPerSec查看存储节点情况hdfs dfsadmin -report设置负载的带宽hdfs dfsadmin -setBalancerBandwidth 524288000开始均衡 threshold 一般10, 即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5%$HADOOP_HOME/sbin/start-balancer.sh -threshold 5
四、平滑下节点
- 下掉指定节点
1. 设置需要下的节点
- 配置需要下的 data node 节点
<property><name>dfs.namenode.replication.work.multiplier.per.iteration</name><value>10</value></property><property><name>dfs.namenode.replication.max-streams</name><value>50</value></property><property><name>dfs.namenode.replication.max-streams-hard-limit</name><value>100</value></property><!-- 设置需要下的节点, 一行一行写节点 --><property><name>dfs.hosts.exclude</name><value>/home/hadoop/conf/excludes</value></property>yarn rmadmin -refreshNodes
* ucloud 重启节点 管理
1. 重启 resourcemanager 步骤
1. 查看节点状态yarn rmadmin -getServiceState rm1yarn rmadmin -getServiceState rm2在状态是 standby 的节点修改配置 运行重启命令2. 重启 resourcemanager 命令sudo service hadoop-yarn-resourcemanager restart
2. 重启 nodemanager 步骤
service hadoop-yarn-nodemanager restart
