HadoopYarn常用命令、yarn application查看任务、yarn logs查看日志、yarn applicationattempt查看尝试运行的任务、查看容器、Yarn生产环境核心参数

16. Yarn资源调度器

16.5 Yarn常用命令

Yarn状态的查询,除了可以在hadoop103:8088页面查看外,还可以通过命令操作。常见的命令操作如下所示:
需求:执行WordCount案例,并用Yarn命令查看任务运行情况。

在这里插入图片描述

16.5.1 yarn application查看任务

16.5.1.1 列出所有Application:
[summer@hadoop102 hadoop-3.1.3]$ yarn application -list
2022-10-10 16:57:24,620 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8032
Total number of applications (application-types: [], states: [SUBMITTED, ACCEPTED, RUNNING] and tags: []):0
                Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL

在这里插入图片描述这里因为任务已经执行结束了,所以没有显示出来。

16.5.1.2 根据Application状态过滤:yarn application -list -appStates (所有状态:ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED)
[summer@hadoop102 hadoop-3.1.3]$ yarn application -list -appStates FINISHED
2022-10-10 17:03:48,178 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8032
Total number of applications (application-types: [], states: [FINISHED] and tags: []):1
                Application-Id	    Application-Name	    Application-Type	      User	     Queue	             State	       Final-State	       Progress	                       Tracking-URL
application_1665325770064_0003	          word count	           MAPREDUCE	    summer	   default	          FINISHED	         SUCCEEDED	           100%	http://hadoop102:19888/jobhistory/job/job_1665325770064_0003

在这里插入图片描述这里的任务application_1665325770064_0003就是刚刚我们执行的任务

16.5.1.3 Kill掉Application:
[summer@hadoop102 hadoop-3.1.3]$ yarn application -kill application_1665325770064_0003
2022-10-10 17:05:56,667 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8032
Application application_1665325770064_0003 has already finished 

在这里插入图片描述因为application_1665325770064_0003这个任务已经完成了,所以不能再次被kill了

16.5.2 yarn logs查看日志

16.5.2.1 查询Application日志:
yarn logs -applicationId <ApplicationId>
[summer@hadoop102 hadoop-3.1.3]$ yarn logs -applicationId application_1665325770064_0003

在这里插入图片描述

16.5.2.2 查询Container日志:
yarn logs -applicationId <ApplicationId> -containerId <ContainerId> 
[summer@hadoop102 hadoop-3.1.3]$ yarn logs -applicationId application_1665325770064_0003 -containerId container_1665325770064_0003_01_000001

在这里插入图片描述

containerId从16.5.3.1里获取

16.5.3 yarn applicationattempt查看尝试运行的任务

16.5.3.1 列出所有Application尝试的列表:
yarn applicationattempt -list <ApplicationId>
[summer@hadoop102 hadoop-3.1.3]$ yarn applicationattempt -list application_1665325770064_0003
2022-10-10 20:01:36,619 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8032
Total number of application attempts :1
         ApplicationAttempt-Id	               State	                    AM-Container-Id	                       Tracking-URL
appattempt_1665325770064_0003_000001	            FINISHED	container_1665325770064_0003_01_000001	http://hadoop103:8088/proxy/application_1665325770064_0003/

在这里插入图片描述

16.5.3.2 打印ApplicationAttemp状态:
yarn applicationattempt -status <ApplicationAttemptId>
[summer@hadoop102 hadoop-3.1.3]$ yarn applicationattempt -status appattempt_1665325770064_0003_000001
2022-10-10 20:11:35,446 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8032
Application Attempt Report : 
	ApplicationAttempt-Id : appattempt_1665325770064_0003_000001
	State : FINISHED
	AMContainer : container_1665325770064_0003_01_000001
	Tracking-URL : http://hadoop103:8088/proxy/application_1665325770064_0003/
	RPC Port : 42572
	AM Host : hadoop103
	Diagnostics : 

在这里插入图片描述

ApplicationAttemptId从16.5.3.1里获取

16.5.4 yarn container查看容器

16.5.4.1 列出所有Application 尝试的列表
yarn container -list <ApplicationAttemptId>
[summer@hadoop102 hadoop-3.1.3]$ yarn container -list appattempt_1665325770064_0003_000001
2022-10-10 20:15:25,743 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8032
Total number of containers :0
                  Container-Id	          Start Time	         Finish Time	               State	                Host	   Node Http Address	                            LOG-URL

在这里插入图片描述
只有在任务跑的途中才能看到 container 的状态,因为这个任务运行完之后,container容器会立即释放,我这里就没有container容器,因为任务已经运行结束了

[summer@hadoop102 hadoop-3.1.3]$ yarn applicationattempt -list application_1665325770064_0010
2022-10-10 20:25:08,250 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8032
Total number of application attempts :1
         ApplicationAttempt-Id	               State	                    AM-Container-Id	                       Tracking-URL
appattempt_1665325770064_0010_000001	             RUNNING	container_1665325770064_0010_01_000001	http://hadoop103:8088/proxy/application_1665325770064_0010/

在这里插入图片描述这个靠手速弄出来一个结果,这个就是有容器的时候里面显示的内容

16.5.4.2 打印Container状态:
yarn container -status <ContainerId>

[summer@hadoop102 hadoop-3.1.3]$ yarn container -status container_1665325770064_0003_01_000001
2022-10-10 20:20:13,494 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8032
Container with id ‘container_1665325770064_0003_01_000001’ doesn’t exist in RM or Timeline Server.

在这里插入图片描述注:只有在任务跑的途中才能看到 container 的状态

[summer@hadoop102 hadoop-3.1.3]$ yarn container -status container_1665325770064_0010_01_000001
2022-10-10 20:25:14,642 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8032
Container Report : 
	Container-Id : container_1665325770064_0010_01_000001
	Start-Time : 1665404700780
	Finish-Time : 0
	State : RUNNING
	Execution-Type : GUARANTEED
	LOG-URL : http://hadoop104:8042/node/containerlogs/container_1665325770064_0010_01_000001/summer
	Host : hadoop104:36495
	NodeHttpAddress : http://hadoop104:8042
	Diagnostics : null

在这里插入图片描述这个靠手速弄了一个任务在运行中的显示结果

16.5.5 yarn node查看节点状态

列出所有节点:yarn node -list -all

[summer@hadoop102 hadoop-3.1.3]$ yarn node -list -all
2022-10-10 20:33:40,711 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8032
Total Nodes:3
         Node-Id	     Node-State	Node-Http-Address	Number-of-Running-Containers
 hadoop104:36495	        RUNNING	   hadoop104:8042	                           0
 hadoop103:38375	        RUNNING	   hadoop103:8042	                           0
 hadoop102:40891	        RUNNING	   hadoop102:8042	                           0

在这里插入图片描述

16.5.6 yarn rmadmin更新配置

加载队列配置:yarn rmadmin -refreshQueues

[summer@hadoop102 hadoop-3.1.3]$ yarn rmadmin -refreshQueues
2022-10-10 20:39:09,817 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8033

在这里插入图片描述

16.5.7 yarn queue查看队列

打印队列信息:yarn queue -status

[summer@hadoop102 hadoop-3.1.3]$ yarn queue -status default
2022-10-10 20:43:10,934 INFO client.RMProxy: Connecting to ResourceManager at hadoop103/192.168.159.103:8032
Queue Information : 
Queue Name : default
	State : RUNNING
	Capacity : 100.0%
	Current Capacity : .0%
	Maximum Capacity : 100.0%
	Default Node Label expression : <DEFAULT_PARTITION>
	Accessible Node Labels : *
	Preemption : disabled
	Intra-queue Preemption : disabled

在这里插入图片描述
在这里插入图片描述
这里的值更详细

16.6 Yarn生产环境核心参数

在这里插入图片描述

### 拒绝连接问题的原因分析 在 Linux CentOS 9 上搭建 Hadoop 3 集群时,如果遇到“拒绝连接”的问题,通常可能由以下几个原因引起: 1. **防火墙未关闭**:CentOS 默认启用了 `firewalld` 或其他网络服务限制工具,可能会阻止 Hadoop 的端口通信。 2. **SSH 密钥认证失败**:Hadoop 节点之间的无密码 SSH 连接未能正确配置,可能导致节点间无法正常通信。 3. **Hadoop 配置文件错误**:核心配置文件(如 `core-site.xml`, `hdfs-site.xml`, `mapred-site.xml`, 和 `yarn-site.xml`)中的参数设置不正确,或者路径指向有误。 4. **Zookeeper 或 ResourceManager 启动异常**:这些组件的启动日志中可能存在错误提示。 以下是针对这些问题的具体解决方案。 --- ### 解决方案 #### 1. 关闭防火墙 确保所有节点上的防火墙已关闭。可以运行以下命令来禁用 `firewalld` 并停止其服务: ```bash sudo systemctl stop firewalld sudo systemctl disable firewalld ``` 此外,还可以通过临时开放特定端口的方式解决问题。例如,允许 HDFS 使用的默认端口 (8020, 50070),YARN 使用的端口 (8032, 8088) 等[^1]。 --- #### 2. 配置无密码 SSH 登录 验证主节点到各个从节点以及从节点间的无密码 SSH 认证是否成功。如果没有完成此步骤,则需要生成密钥对并将公钥分发至各节点: ```bash ssh-keygen -t rsa ssh-copy-id user@slave-node-ip ``` 完成后尝试免密码登录目标节点以确认配置生效。 --- #### 3. 检查并修正 Hadoop 配置文件 仔细核对所有的 XML 配置文件是否有语法错误或其他不当之处。下面是一些常见的配置项及其推荐值: - **core-site.xml** ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> </configuration> ``` - **hdfs-site.xml** ```xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration> ``` - **mapred-site.xml** ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` - **yarn-site.xml** ```xml <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> </configuration> ``` 上述配置需根据实际环境调整主机名或 IP 地址。 --- #### 4. 清理旧数据并重新格式化 NameNode 当集群初始化过程中出现问题时,建议清理之前的元数据记录后再重试。具体操作如下: 1. 停止当前正在运行的服务: ```bash sbin/stop-dfs.sh sbin/stop-yarn.sh ``` 2. 删除原有日志和数据目录: ```bash rm -rf /path/to/hadoop/logs/ rm -rf /path/to/hadoop/data/ ``` 3. 对 NameNode 执行格式化命令: ```bash bin/hdfs namenode -format ``` 4. 重启整个集群服务: ```bash sbin/start-dfs.sh sbin/start-yarn.sh ``` 最后利用 `jps` 工具检查进程状态是否正常[^4]。 --- #### 5. 测试 Zookeeper 及 YARN 功能 对于依赖于 Zookeeper 的高可用架构来说,还需要单独检验它的健康状况。比如查看每台服务器上是否存在对应的 myid 文件,并将其内容设为唯一编号;接着依次开启 zkServer 实例: ```bash ./zkServer.sh start ``` 随后可通过客户端程序查询集群成员列表判断工作情况良好与否[^3]。 另外,执行简单的 MapReduce 示例任务进一步验证整体框架能否协同作业: ```bash hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples*.jar pi 10 10 ``` 观察终端输出结果得知计算精度达到预期水平即表明部署顺利完成[^2]。 --- ### 总结 综上所述,“拒绝连接”现象往往源于基础网络条件不足或是软件层面存在缺陷所致。按照前述方法逐一排查直至找到根本诱因即可彻底消除障碍恢复正常使用功能。 ---
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Redamancy_06

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值