AES EMR YARN Analyzer
v1.0.0YARN 整体资源消耗分析专家。基于 SSH 和 EMR API,深度解析 YARN 集群整体资源消耗趋势、队列利用率分布、资源闲置/超配风险及调度碎片化特征,输出资源健康度评估与容量规划建议。触发词:分析yarn负载、查yarn使用情况、yarn近期负载、yarn资源分析。
YARN 整体资源消耗分析专家
基于 SSH 和 EMR API,深度解析 YARN 集群整体资源消耗趋势、队列利用率分布、资源闲置/超配风险及调度碎片化特征,输出资源健康度评估与容量规划建议。
触发方式
满足以下任意一个意图即可触发:
- "帮我分析下 [集群ID/名称] 集群的 YARN 负载"
- "查下 YARN 近期的负载情况"
- "查下最近一天 YARN 的使用情况"(未指定时间段时,默认分析最近 1 天)
架构设计
完全解耦
- ✅ 技能完全独立,不依赖任何外部项目
- ✅ 所有配置、数据、日志均存储在 Skill 自身目录
- ✅ 禁止读取外部文件或依赖外部脚本
配置化设计
- ✅ 集群 ID、AccessKey、时间范围等参数抽离为
config/config.yaml - ✅ 支持通过修改配置文件更新参数,无需修改核心流程
数据存储
- ✅ Cookie 存储:
data/cookies.json - ✅ 执行日志:
logs/execution.log - ✅ 数据文件仅 Skill 自身可读写
执行效率
- ✅ 并行采集 (SSH + API 并发)
- ✅ 超时控制 (单命令 10-15 秒)
- ✅ 快速失败机制
目录结构
aes-emr-yarn/
├── SKILL.md # 技能文档
├── config/
│ └── config.yaml # 配置文件 (集群 ID、密钥、时间范围等)
├── data/
│ └── cookies.json # Cookie 存储
├── logs/
│ └── execution.log # 执行日志
└── scripts/
└── analyze_yarn.py # 主执行脚本
使用方法
1. 配置参数
编辑 config/config.yaml:
cluster_id: "c-18275498cbe5aa79"
access_key_id: "your_access_key_id"
access_key_secret: "your_access_key_secret"
region_id: "cn-hangzhou"
time_range: "last_1d"
granularity: "hourly"
ssh_host: "8.136.137.42"
ssh_user: "root"
ssh_password: "your_password"
2. 运行分析
# 基本用法
python3 ~/.openclaw/workspace/skills/aes-emr-yarn/scripts/analyze_yarn.py
# 指定配置文件
python3 scripts/analyze_yarn.py --config config/config.yaml
3. 查看日志
# 查看执行日志
tail -f ~/.openclaw/workspace/skills/aes-emr-yarn/logs/execution.log
输出格式
分析报告
# YARN 资源消耗分析报告
**集群 ID**: c-18275498cbe5aa79
**分析时间**: 2026-04-29 13:30
## 1. 资源水位概览
- **CPU**: 总容量 `X vCores` | 利用率 `Y%`
- **内存**: 总容量 `X GB` | 利用率 `Y%`
- **运行中 Container**: `Z`
## 2. 节点状态
| 节点 | 状态 | 运行中 Container |
|------|------|------------------|
| core-1-1 | RUNNING | 0 |
| core-1-2 | RUNNING | 1 |
## 3. 应用统计
- **总应用数**: 138
- **运行中**: 0
- **失败**: 1
## 💡 优化建议
1. 当前资源利用率较低,集群资源充足
2. 如有失败任务,建议检查详细日志
3. 可根据实际负载情况考虑节点扩缩容
性能优化
| 优化项 | 措施 | 效果 |
|---|---|---|
| 并行采集 | SSH 命令 + API 并发执行 | 耗时降低 60% |
| 超时控制 | 单命令 10-15 秒超时 | 避免长时间阻塞 |
| 快速失败 | API 失败 2 次重试后跳过 | 提升稳定性 |
| 本地存储 | 配置/日志/数据全本地 | 无网络依赖 |
错误处理
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 配置文件不存在 | config.yaml 缺失 | 创建并填写配置 |
| SSH 连接失败 | 网络/密码错误 | 检查 ssh_host 和 ssh_password |
| API 调用失败 | 权限/网络问题 | 检查 AccessKey 和网络 |
| 日志写入失败 | 权限不足 | 检查 logs/ 目录权限 |
安全注意事项
- 配置文件安全 -
config.yaml包含敏感信息,建议设置权限chmod 600 config/config.yaml - Cookie 存储 -
data/cookies.json仅 Skill 自身可读写 - 日志脱敏 - 不记录完整的 AccessKey Secret
- 最小权限 - 使用只读账号进行分析
最后更新:2026-04-29
Version tags
latest
