You need to enable JavaScript to run this app.
导航
引导操作
最近更新时间:2023.04.06 14:28:32首次发布时间:2022.04.27 18:51:54

在火山引擎 E-MapReduce(EMR)集群中添加引导操作,可以安装您需要的第三方软件或者修改集群运行环境。本文为您介绍如何添加、编辑、克隆和删除引导操作。

1 使用限制

  1. 您最多可以添加10个引导操作。引导操作会按照您最新添加的引导操作开始执行。

  2. 默认用 root 账户执行。

2 添加引导操作

2.1 方式一:在创建集群时添加引导操作

  1. 在创建集群时选择自定义创建,在第3步其他设置 > 高级设置中,单击选择添加引导按钮,在添加引导对话框中,填写以下相关配置项。创建集群步骤请参考创建集群

参数描述
引导名称引导操作的名称。

脚本位置

选择脚本所在 TOS 的位置,如您没开通 TOS 相关服务请先授权。

说明

  1. 登录用户单击界面右上角用户头像,进入访问控制 > 角色界面。

  2. 在搜索框中输入 VEECSforEMRRole,进行角色搜索。若没有该角色,您需单击新建角色按钮,完成角色创建。角色创建请参考角色管理

  3. 单击 VEECSforEMRRole 角色名称,检查角色中是否已包含 ECS 和 TOS 相关的权限策略,以确保 EMR 能正常读取您在 TOS 中上传的脚本。

脚本路径格式必须为 tos://**/*.sh 格式。

参数引导操作脚本的参数,指定脚本中所引用的变量的值。

执行范围

  • 集群:此引导操作适用于整个集群。

  • 节点组:此引导操作适用于您选择的节点组,您可以选择 MasterGroup、CoreGroup 和 TaskGroup(若有)节点组名称。

执行时间

  • 组件部署前:组件部署前执行该脚本。

  • 组件部署后:组件部署后执行该脚本。

执行失败策略

  • 继续执行:如果该脚本执行失败,继续执行下一个脚本。

  • 停止执行:如果该脚本执行失败,停止当前脚本。

如果在创建集群时添加了引导操作,您可以在初始化集群操作日志中看到对应步骤或者在集群详情 > 引导操作页签中单独查看每条引导操作执行的情况。
您可以登录到主节点的 /var/log/bootstap/<节点名称_IP> 路径查看执行日志。如果集群配置了 TOS 日志目录,运行日志也会上传到 tos-path/emr/clusterid/log/bootstrap/<节点名称_IP> 目录。

2.2 方式二:创建集群后添加引导操作。

  1. 登录 EMR 控制台

  2. 在左侧导航栏中,单击集群管理 > 集群列表 > 集群名称,进入需配置引导操作的集群详情界面。

  3. 在集群详情界面,单击引导操作页签,进入引导操作配置界面。

  4. 在右侧单击添加引导操作,在弹窗中,按照上述方式一中所述的填写参数介绍,进行添加引导操作配置。

说明

如选择方式二这种方式添加引导操作,这些引导操作只会在扩容操作所新创建出来的节点上执行!

3 引导操作脚本管理

3.1 编辑引导操作

  1. 引导操作页面,在待编辑引导操作所在行,单击操作列中的编辑按钮。

  2. 编辑引导操作对话框中,您可以根据需求修改所有配置项。

3.2 克隆引导操作

  1. 引导操作页面,在待克隆引导操作所在行,单击操作列中的克隆按钮。

  2. 在弹出的添加引导操作对话框中,您可以根据需求修改所有配置项。

3.3 删除引导操作

  1. 引导操作页面,在待删除引导操作所在行,单击操作列中的删除按钮。

  2. 在二次确认弹窗中,根据需要选择是否删除,单击确定按钮,即完成删除。

4 示例

您可以在上传的 TOS 脚本中写入以下内容来创建文件夹、解压压缩包以及安装软件包等一系列操作。

#!/bin/bash
mkdir dir
tar -zxvf <myfile>.tar.gz -C /<yourdir>
yum install -y ld-linux.so.2

5 常见问题

  • Q1:EMR 引导脚本执行中断,但日志内没有报错信息。

    A1:建议您在脚本中的关键位置增加日志打印逻辑,以便通过运行日志辅助您排查脚本运行情况。目前集群脚本最为常见的报错原因有以下几类:

    • 网络连接性问题。ECS 实例和对应的 TOS 需要在同一地域下。例如,北京地域下的 ECS 实例连接不上非北京地域下的 TOS。

    • ECS 获取 AccessKey 信息失败问题。通常是由于 ECS 实例未绑定 VEECSForEMRRole 导致的。

    • 脚本中使用了 nohup,但又未重定向输出,将导致 Task 长时间无法退出。正确用法为nohup ... >*** 2>&1

    • 脚本在 Windows 环境下编辑会带有 Windows 的换行符号,导致脚本在 Linux 环境下运行出错。您可以在操作历史报错日志中查看是否有^M字样。如果有的话建议您在 Linux 环境下重新编辑脚本并上传 TOS。

    • 使用 wget 命令下载程序包超时,请检查 ECS 节点是否连接公网。

    • 使用的指令未找到,请检查 ECS 节点是否安装了此命令。

  • Q2:EMR 引导脚本执行无 YARN、HDFS 等命令。

    A:目前 EMR 管控执行集群脚本时默认不带有任何 profile 信息,如果您需要使用 YARN、HDFS 等相关命令,请在脚本开头加入 . /etc/profile 加载,便可以使用上述命令。

  • Q3:输入的脚本参数未起作用。

    A3:输入的参数以空格分隔,我们会按顺序在您的脚本中替换字样为 $1、$2 以此类推等字符为您输入的参数。注意,如果您的脚本带有自定义函数,且函数内的参数如果含有 $1、$2 等字样也会一并替换,导致该函数不可用。