火山引擎 EMR 为您提供了官方 EMR Agent skills,将 EMR 的运维经验与能力沉淀为通用 skill,可集成到各类智能助手中使用,例如,火山引擎 ArkClaw、TRAE等,通过便捷地安装操作,您只需以自然语言表达需求,AI 智能体即可基于 EMR Agent skill 的技能为您处理复杂的 EMR 后台运维任务。
当前 EMR Agent skill 为您提供了以下典型应用技能。
Skill 名称 | skill 获取链接 | Skill 介绍 |
|---|---|---|
byted-emr-skills |
|
|
您可以执行 Clawhub 镜像站为您提供的通用 skill 安装命令来安装 EMR Agent skill。
安装命令如下。
# npm 安装安装命令 npx clawhub@latest install byted-emr-skills --registry=https://clawhub.ai
其中:
您可以在 OpenClaw/IDE 的命令终端中直接执行安装命令,即可安装对应 EMR Agent skill,您也可以将命令发送给 OpenClaw/IDE 的 Agent,让 Agent 直接帮您执行 skill 安装命令。
安装示例
Agent 执行安装命令 | 手动执行安装命令 |
|---|---|
通过任务对话窗口,将安装命令发送给Agent,让Agent自主安装 skill,以使用 ArkClaw 为例。
| 进入终端页面,手动执行安装命令,以 TRAE 为例。
|
您可以在 Clawhub 镜像站下载最新的 EMR Agent skill 的离线包,通过上传离线包的方式来安装 EMR Agent skill。
您可以将 EMR Agent skill 离线包送给 OpenClaw/IDE 的 Agent,让 Agent 直接帮您安装 skill,如果有界面化的上传离线Skill的操作入口,您也可以手动上传进行安装。
Agent 安装 | 手动上传 Skill 包 |
|---|---|
通过任务对话窗口,将Skill 离线包发送给Agent,让Agent自主安装 skill,以使用 ArkClaw 为例,您可以在绑定的消息渠道(如飞书)中,直接向 Agent 发送 Skill 离线包。
| 以 TRAE 为例,如果有界面化的技能配置页面,您也可以直接上传 Skill 离线包进行安装。
|
在进行配置使用 EMR Agent skill 前,您需要确保已开通 EMR ,并已创建了有 EMR 操作运维权限的账号认证 AK、SK。
以下为您介绍使用火山引擎 ArkClaw 时,如何快速设置环境变量。
登录并进入 ArkClaw 页面后,单击页面右上角的“设置”按钮,在弹窗的侧边栏中单击 “查看终端”,打开 ArkClaw 的终端配置界面。
在终端中执行vim env.sh命令,打开环境变量配置文件,在键盘输入i,进入编辑状态,在环境变量配置文件中新增 EMR Agent skill 所需的变量及取值。
export VOLCENGINE_AK="your_emr_ak" export VOLCENGINE_SK="your_emr_sk" # 您也可以将需要操作运维的 EMR 所在的地域配置为环境变量,提高后续任务描述的效率。 export VOLCENGINE_REGION="cn-beijing"
在键盘输入esc,退出编辑状态,输入:wq,保存并退出环境变量配置文件。
在终端中执行cat env.sh命令,检查配置结果,如果配置无误,即可关闭终端窗口,返回 ArkClaw 交互页面。
返回 ArkClaw 交互页面后,让 ArkClaw 参考上述步骤中的环境变量配置文件的取值进行环境变量设置。例如,输入:用/root/env.sh配置一下我的环境变量。
注意
使用 ArkClaw 时,请务必【不要】直接在终端中使用 source env.sh 命令来设置环境变量,而是参考本步骤,让 ArkClaw 进行设置,这样可以让 ArkClaw 了解环境变量设置思路,可提高模型自助检查、设置环境变量的效率。
当 ArkClaw/OpenClaw 配置完成后,可快速测试一下 EMR Agent skill 技能,验证环境变量配置是否正确、skill能否正常使用。
使用 EMR Agent skill 时,您可以向 Agent 发送作业/集群/服务诊断的任务描述,以下以诊断失败作业为例,为例示例使用 EMR Agent skill 进行对应场景深度诊断的示例。
说明
相较于直接使用 EMR 智能助手进行对应的诊断操作,使用 EMR Agent skill 会更加灵活,例如,您可以无需指定具体的作业/集群/服务诊断的 ID 信息,可以基于 Agent 的能力,通过一些需要重点关注的场景进行更灵活的诊断。
模块 | 功能 | 输入指令 | 测试截图 |
|---|---|---|---|
资源队列 | 队列列表 | 查询 EMR serverless 队列列表 | |
资源队列 | 队列详情 | 查询<队列名称> <资源 ID> 详情 | |
权限 | 获取队列权限列表 | 获取名称为 <队列名称> 的权限列表 | |
权限 | 模糊搜索队列权限 | 模糊搜索 <队列名称> 中 <用户名> 用户 的权限 | |
权限 | 添加用户权限 | 在名称为 <队列名称> 的队列中,为用户 <用户名> 添加 Developer 权限 | |
权限 | 修改用户的队列权限 | 在名称为 <队列名称> 的队列中,将用户 <用户名> 的权限由 Developer 修改为 Admin | |
操作审计 | 操作日志查询 | 查询<队列名称>的操作日志 查询serverless队列操作日志(推荐) | |
作业管理 | 作业列表 | 查询作业模板列表 | |
作业管理 | 获取作业详情 | 查询作业模板 <作业模板名称> 详情 | |
作业管理 | 创建作业 | 创建一个作业模板 作业类型: PySpark 作业名字: <作业名称> 开发类型: UI 执行资源: 使用EMR Serverless中 <队列名称>/Default 任务python文件路径: <TOS 路径> | |
作业管理 | 执行作业 | 执行EMR serverless作业模板,模板ID:<作业模板 ID> | |
作业管理 | 修改作业定义 | 修改EMR serverless作业 模板<作业模板 ID> 的名字为 <新作业名称> | |
作业实例管理 | 查询作业实例 | 查询下作业实例 <资源 ID> 的状态 | |
作业实例管理 | 终止作业实例 | 帮我取消下作业实例 <资源 ID> | |
作业实例管理 | 重跑作业实例 | 重跑下作业实例 <资源 ID> | |
作业实例管理 | 分批获取数据结果 | 获取下作业实例 <资源 ID> 的查询结果 | |
作业实例管理 | 作业实例列表 | 看下近一天的作业实例情况 | |
作业实例管理 | 作业实例执行日志获取 (支持关键字搜索,同时支持syslog和stdout) | 帮我获取下: <资源 ID> 作业实例的倒数10行 带有INFO 关键字的执行日志 | |
作业实例管理 | 作业实例提交日志获取 | 帮我获取下: <资源 ID> 作业的提交日志,日志即可,不需要分析 | |
常用场景 | 提交Ray作业 | 帮我提交一个EMR Serverless Ray作业到 <队列名称> 队列,Ray作业内容是利用Ray分布式计算PI,TOS 桶的名称为 <TOS 桶名称>,作业完成后,将执行日志里的stdout发给我 | |
常用场景 | 提交SparkSQL作业 | 帮我用SparkSQL提交一个作业,查询下 default库 下都有哪些表 | |
常用场景 | 提交PySpark作业 | 帮我提交一个EMR Serverless PySpark作业到 “<队列名称>” 队列,Spark作业内容是利用Spark分布式计算PI,TOS 桶的名称为 <TOS 桶名称>,作业完成后,将执行日志里的stdout发给我,以及trackingUrl | |
常用场景 | 提交Presto作业 | 使用<队列名称>,帮我用 PrestoSQL 查询下 <表名> 表 的数据,返回前10条 | |
计算组 | 创建计算组 | 创建一个 Spark 计算组, driver 4core,executor 4core,executor 数量为 1 ,名称为 <计算组名称> | |
计算组 | 计算组列表 | 帮我查看一下队列 <队列名称> 下有哪些计算组 | |
计算组 | 更配计算组 | 将计算组的 driver core 改为 8 | |
计算组 | 计算组监控查询 | 查看下计算组的监控 |
模块 | 功能 | 输入指令 | 测试截图 |
|---|---|---|---|
操作管理 | 操作列表 | 查看EMR on ECS集群 <集群 ID> 的操作审计日志 查看EMR on ECS集群<集群 ID>的操作审计日志 | |
集群管理 | 集群列表 | 查看EMR on ECS集群列表 | |
集群管理 | 获取集群 | 查看EMR on ECS集群 <集群 ID> 详情 | |
集群管理 | 更新集群属性 | 修改EMR on ECS集群 <集群 ID> 名字为 <集群名称> | |
节点组管理 | 更新节点组ECS规格 | 修改EMR on ECS集群 <集群 ID> 的节点组 <节点组 ID> 的实例规格为 ecs.g3il.8xlarge | |
节点组管理 | 扩容节点组磁盘 | 扩容EMR on ECS集群 <集群 ID> 的节点组 <节点组 ID> 的数据盘扩容至 81 | |
节点组管理 | 节点列表 | 查看EMR on ECS集群 <集群 ID> 的节点组列表 | |
节点组管理 | 更新节点组属性 | 更新EMR on ECS集群 <集群 ID> 的节点组 <节点组 ID> 名称为 <节点组名称> 。 | |
应用管理 | 组件列表 | 查看EMR on ECS集群 <集群 ID> 的 HDFS 服务的组件列表 | |
应用管理 | 组件实例列表 | 查看EMR on ECS集群 <集群 ID> 的 HDFS 服务的组件实例列表 | |
应用管理 | 应用列表 | 查看EMR on ECS集群 <集群 ID> 的服务列表 | |
应用管理 | 执行应用操作 | 重启EMR on ECS集群 <集群 ID> 的 HDFS 服务 | |
应用管理 | 配置项修改历史列表 | 查看EMR on ECS集群 <集群 ID> 的HDFS服务的配置项修改历史列表 | |
应用管理 | 更新配置项 | 更新EMR on ECS集群 <集群 ID> 的 Spark 服务配置 livy.server.session.max-creation=11 | |
应用管理 | 集群配置文件列表 | 查看EMR on ECS集群 <集群 ID> 的 HDFS 服务的配置文件列表 | |
应用管理 | 获取集群配置文件信息 | 查看EMR on ECS集群 <集群 ID> 的 HDFS 服务的配置文件hdfs-site.xml详情 | |
应用管理 | 配置项列表 | 查看EMR on ECS集群 <集群 ID> 的 HDFS 服务的配置项列表 | |
用户管理 | 创建集群用户 | EMR on ECS集群 <集群 ID> 中创建用户 <用户名> ,密码 <用户密码> | |
用户管理 | 修改已创建用户信息 | EMR on ECS集群 <集群 ID> 中修改用户 <用户名> 的描述为 test | |
用户管理 | 获取集群用户列表 | EMR on ECS集群 <集群 ID> 中获取用户列表 | |
用户管理 | 更新集群用户密码 | EMR on ECS集群 <集群 ID> 中更新用户 <用户名> 密码为 <新密码>,旧密码为 <旧密码> | |
用户管理 | 获取EMR管控用户详情 | EMR on ECS集群 <集群 ID> 中获取用户 <用户名> 详情 | |
用户组管理 | 更新集群用户组 | EMR on ECS集群 <集群 ID> 中更新用户组 <用户组名称> 的描述为 test | |
用户组管理 | 创建集群用户组 | EMR on ECS集群 <集群 ID> 中创建用户组 <用户组名称> | |
用户组管理 | 获取集群用户组列表 | EMR on ECS集群 <集群 ID> 用户组列表 | |
用户组管理 | 集群用户组详情 | EMR on ECS集群 <集群 ID> 查看用户组 <用户组名称> 详情 |
模块 | 功能 | 输入指令 | 测试截图 |
|---|---|---|---|
集群管理 | 获取集群列表 | 帮我查一下运行中的 EMR on VKE 集群,返回前 3 个 | |
集群管理 | 查看集群详情 | 帮我查一下集群 <集群名称> 的详情 | |
服务管理 | 查看服务列表 | 帮我查看一下这个集群 <集群名称> 的服务列表 | |
服务管理 | 重启服务 | 帮我重启一下集群 <集群名称> 中 spark 服务 | |
服务管理 | 查看服务组件列表 | 帮我查看一下集群 <集群名称> 中 spark 的组件实例列表 | |
服务管理 | 重启服务组件实例 | 帮我重启一下集群 <集群名称> 中 SparkHistoryServer | |
服务管理 | 查看服务配置 | 帮我查看下集群 <集群名称> 中 SparkOperator 的内存配置 | |
服务管理 | 更新服务配置 | 帮我把集群 <集群名称> 配置改成 12G 吧 | |
操作日志 | 查看操作日志列表 | 帮我查看一下集群 <集群名称> 操作日志列表,看看有没有配置更新的操作 |