yarn app 指令
时间: 2025-03-14 07:13:02 浏览: 39
### Yarn Application 命令详解
Yarn 是 Hadoop 生态系统中的资源管理器,`yarn application` 命令用于管理和监控运行在 YARN 集群上的应用程序。以下是关于 `yarn application` 的具体用法及相关子命令。
#### 1. 列出正在运行的应用程序
可以使用 `-list` 子命令来查看当前集群上所有的应用状态或特定类型的應用程式:
```bash
yarn application -list [-appStates <states>] [-appTypes <types>]
```
- 参数说明:
- `-appStates`: 过滤指定状态的应用程序,例如 RUNNING, FINISHED, FAILED 等[^2]。
- `-appTypes`: 过滤指定类型的应用程序,比如 MAPREDUCE, SPARK 等。
示例:列出所有处于运行状态的 MapReduce 应用程序。
```bash
yarn application -list -appStates RUNNING -appTypes MAPREDUCE
```
#### 2. 杀死某个应用程序
如果需要终止某一个具体的 YARN 应用程序,则可使用以下命令:
```bash
yarn application -kill <application ID>
```
其中 `<application ID>` 可通过上述列表命令获取。此操作会向目标应用发送杀死信号并释放其占用的所有资源[^3]。
#### 3. 移动应用程序至其他队列
当希望调整某些作业优先级或将它们重新分配给不同的调度池时,可以通过下面这条语句实现迁移功能:
```bash
yarn application -movetoqueue <application ID> -targetQueue <new queue name>
```
这允许管理员灵活控制工作负载分布情况以及优化整体性能表现。
以上就是围绕着 **YARN Applications Management** 所涉及到的一些核心指令及其参数配置方式介绍完毕之后我们再来看几个实际应用场景下的例子帮助加深理解如何更好地利用这些工具完成日常运维任务需求吧!
---
### 示例代码片段展示
假设我们需要查找最近失败的一个 Spark Job 并将其移除掉同时还要把它转移到另一个名为 high_priority_queue 中去执行的话就可以按照如下流程来进行处理:
第一步先找到那个 job id:
```bash
failed_job=$(yarn application -list -appStates FAILED | grep 'Spark' | awk '{print $1}')
echo "Failed Job ID is ${failed_job}"
```
第二步对该 task 发起 kill 请求:
```bash
if [ ! -z "$failed_job" ];then
echo "Killing failed job..."
yarn application -kill "${failed_job}"
fi
```
最后一步把该 user 下面新启动的任务都放到 priority higher group inside :
```bash
for new_task in $(yarn application -list|grep spark|awk '{print$1}');do
yarn application -movetoqueue "${new_task}" -targetQueue high_priority_queue
done
```
---
阅读全文
相关推荐


















