Hadoop-yarn命令

本文详细介绍了YARN命令的使用方法,包括资源管理、节点管理、应用管理和日志提取等核心功能。通过实例展示了如何查看运行状态的任务、杀死特定任务及提取相关日志,为Hadoop集群的运维提供了实用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. yarn命令

[ruoze@rzdata001 ~]$ which yarn
~/app/hadoop/bin/yarn
[ruoze@rzdata001 ~]$ 
  • yarn -help yarn查看帮助
[ruoze@rzdata001 ~]$ yarn -help
Usage: yarn [--config confdir] COMMAND
where COMMAND is one of:
  resourcemanager -format-state-store   deletes the RMStateStore
  resourcemanager                       run the ResourceManager
                                        Use -format-state-store for deleting the RMStateStore.
                                        Use -remove-application-from-state-store <appId> for 
                                            removing application from RMStateStore.
  nodemanager                           run a nodemanager on each slave
  timelineserver                        run the timeline server
  rmadmin                               admin tools
  version                               print the version
  jar <jar>                             run a jar file
  application                           prints application(s)
                                        report/kill application
  applicationattempt                    prints applicationattempt(s)
                                        report
  container                             prints container(s) report
  node                                  prints node report(s)
  queue                                 prints queue information
  logs                                  dump container logs
  classpath                             prints the class path needed to
                                        get the Hadoop jar and the
                                        required libraries
  daemonlog                             get/set the log level for each
                                        daemon
  top                                   run cluster usage tool
 or
  CLASSNAME                             run the class named CLASSNAME

Most commands print help when invoked w/o parameters.
[ruoze@rzdata001 ~]$ 

常用如下:

  • yarn application 查看运行状态的任务,kill任务
yarn application -appStates ACCEPTED -list | awk -F "[@\t]" '{print $1,$4,$5,$6,$8,$2}'  |grep username
yarn application -appStates RUNNING -list | awk -F "[@\t]" '{print $1,$4,$5,$6,$8,$2}'  |grep username| grep  1545793104252_12911737
yarn application -kill application_1545793104252_123456789
  • yarn logs 提取相关日志
yarn logs -applicationId application_1566295658573_11041748 > ./job.log
<think>好的,我需要帮助用户解决他们遇到的Class loading error,具体是找不到AmIpFilter类的问题。根据用户提供的引用内容,用户已经尝试复制了hadoop-lzo-0.4.19.jar到lib目录,但问题依旧存在。用户现在想确认Hadoophadoop-yarn-server-webproxy组件是否存在,并希望得到解决异常的方案。 首先,我需要回顾之前的回答,看看是否有遗漏或需要补充的地方。之前的解决方案提到了依赖缺失、类路径配置错误、环境变量问题和服务器缓存。用户现在可能已经检查了部分步骤,但问题仍未解决,需要更详细的指导。 用户引用的错误日志显示,在复制hadoop-lzo的jar后,仍然出现ClassNotFoundException,说明hadoop-yarn-server-web-proxy的jar可能没有正确引入。需要确认该组件的存在以及路径是否正确。 接下来,我应该分步骤详细说明如何确认组件是否存在,并提供具体的检查方法。比如,通过Hadoop安装目录查找相关jar,检查项目依赖,环境变量设置是否正确,以及如何验证类加载等。 此外,用户提到的是JanusGraph与Hadoop集成的情况,可能需要考虑两者的版本兼容性,以及是否有额外的配置步骤,比如修改JanusGraph的配置文件。 还需要注意用户可能遇到的常见问题,比如依赖冲突,特别是如果用户使用了不同的Hadoop版本,或者构建工具中的依赖管理不当,导致版本不一致。 最后,应该提供验证步骤,确保用户按照指导操作后问题得到解决,并生成相关问题帮助用户进一步排查可能的问题。</think>### 分步解决方案 根据您提供的错误日志和引用信息,`AmIpFilter`类属于**Hadoop YARN Web代理组件**(`hadoop-yarn-server-web-proxy`)。以下是具体验证和修复步骤: --- #### **1. 确认Hadoop组件是否存在** **验证目标**: 确保Hadoop安装目录中包含`hadoop-yarn-server-web-proxy`的JAR文件。 **操作步骤**: 1. **定位Hadoop安装路径** 执行以下命令,确认`HADOOP_HOME`环境变量是否正确: ```bash echo $HADOOP_HOME # 输出应为Hadoop安装路径,如/usr/local/hadoop-3.3.6 ``` 若未设置,需手动指定路径(例如`/usr/local/hadoop`)。 2. **检查组件JAR文件** 进入HadoopYARN模块目录,查找`hadoop-yarn-server-web-proxy`的JAR包: ```bash ls $HADOOP_HOME/share/hadoop/yarn/hadoop-yarn-server-web-proxy-*.jar ``` - **预期结果**:应显示类似`hadoop-yarn-server-web-proxy-3.3.6.jar`的文件。 - **若不存在**:说明Hadoop安装不完整,需重新安装或补充组件[^1]。 --- #### **2. 修复类加载异常** **核心问题**: `AmIpFilter`类位于`hadoop-yarn-server-web-proxy`的JAR中,但未正确部署到应用(如JanusGraph)的类路径。 **操作步骤**: 1. **手动复制缺失的JAR** 将Hadoop的`web-proxy`组件和依赖的`hadoop-lzo`包复制到JanusGraph的`lib`目录: ```bash # 复制web-proxy组件 cp $HADOOP_HOME/share/hadoop/yarn/hadoop-yarn-server-web-proxy-*.jar $janusgraph-home/lib/ # 复制LZO压缩支持(根据您的引用[1],已执行此步骤,但需确认版本一致性) cp $HADOOP_HOME/share/hadoop/tools/lib/hadoop-lzo-0.4.19.jar $janusgraph-home/lib/ ``` 2. **验证类路径包含性** 检查JanusGraph启动脚本(如`janusgraph-server.sh`)是否包含`lib`目录: ```bash # 示例启动命令类路径配置 java -cp "$janusgraph-home/lib/*:...其他路径..." ... ``` 若未包含`lib/*`,需在脚本中添加`$janusgraph-home/lib/*`到`CLASSPATH`。 3. **清理缓存并重启服务** Jetty等服务器可能缓存旧类文件,需清理工作目录后重启: ```bash rm -rf $janusgraph-home/tmp/* # 清理临时文件 $janusgraph-home/bin/janusgraph-server.sh restart # 重启服务 ``` --- #### **3. 版本兼容性检查** **潜在问题**: Hadoop版本与JanusGraph集成的Hadoop客户端版本不匹配(例如Hadoop 3.x与JanusGraph依赖的Hadoop 2.x)。 **操作步骤**: 1. **检查项目依赖声明** 若使用Maven/Gradle,确认`hadoop-yarn-server-web-proxy`版本与Hadoop集群一致: ```xml <!-- Maven示例:版本需与HADOOP_HOME中的版本一致 --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-server-web-proxy</artifactId> <version>3.3.6</version> </dependency> ``` 2. **排除冲突依赖** 使用`mvn dependency:tree`检查是否存在其他组件(如Spark、HBase)引入了旧版Hadoop依赖: ```xml <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>3.3.6</version> <exclusions> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-server-web-proxy</artifactId> </exclusion> </exclusions> </dependency> ``` --- #### **4. 验证类加载** **操作步骤**: 1. **手动测试类加载** 执行以下命令,确认JVM能否找到`AmIpFilter`类: ```bash java -cp "$janusgraph-home/lib/*" org.apache.hadoop.yarn.server.webproxy.amfilter.AmIpFilter ``` - **成功**:无输出或提示缺少主类(正常,因该类是Filter,非可执行类)。 - **失败**:若仍报`ClassNotFoundException`,说明JAR未正确部署或损坏。 2. **检查日志详细信息** 查看JanusGraph服务启动日志,定位类加载失败的具体原因: ```bash tail -n 100 $janusgraph-home/logs/janusgraph-server.log ``` --- ### 关键总结 | 问题根源 | 解决动作 | 验证方法 | |-------------------------|---------------------------------------|------------------------------| | `hadoop-yarn-server-web-proxy`缺失 | 复制JAR到`lib/`目录 | 检查`lib/`下是否存在对应JAR | | 版本冲突 | 统一Hadoop组件版本或排除冲突依赖 | `mvn dependency:tree` | | 类路径配置错误 | 修正启动脚本中的`CLASSPATH` | 检查启动命令参数 | --- ### 相关问题 1. 如何排查Hadoop依赖冲突导致的`NoClassDefFoundError`? 2. JanusGraph集成Hadoop时需要哪些额外配置? 3. Jetty服务器类加载机制与Tomcat有何区别?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值