5.5 委托管理
6.1.1 创建集群并执行作业
功能介绍
创建一个MRS集群,并在集群中提交一个作业。该接口不兼容Sahara。 支持同一时间 并发创建10个集群。 使用接口前,您需要先获取下的资源信息。
● 通过VPC创建或查询VPC、子网
● 通过ECS创建或查询密钥对
● 通过终端节点获取区域信息
● 参考MRS服务支持的组件获取MRS版本及对应版本支持的组件信息
接口约束
● 集群登录方式有密码和密钥对两种,两者必选其一。
● 使用密码方式需要配置访问集群节点的root密码,即cluster_master_secret。
● 使用密钥对方式需要配置密钥对名称,即node_public_cert_name。
● 磁盘参数可以使用volume_type和volume_size表示,也可以使用多磁盘相关的参 数(master_data_volume_type、master_data_volume_size、
master_data_volume_count、core_data_volume_type、core_data_volume_size 和core_data_volume_count)表示,以上两种方式任选一组进行配置。
调试
您可以在API Explorer中调试该接口。
URI
POST /v1.1/{project_id}/run-job-flow
表6-1 路径参数
参数 是否必选 参数类型 描述
project_id 是 String 项目编号。获取方法,请参见获 取项目ID。
请求参数
表6-2 请求 Body 参数
参数 是否必选 参数类型 描述
cluster_versio
n 是 String 集群版本。 MRS目前支持MRS
1.9.2、MRS 3.1.0版本。
cluster_name 是 String 集群名称,不允许相同。 只能 由字母、数字、中划线和下划线 组成,并且长度为1~64个字 符。
master_node_
num 是 Integer Master节点数量。启用集群高
可用功能时配置为2,不启用集 群高可用功能时配置为1。MRS 3.x版本暂时不支持该参数配置 为1。
core_node_nu
m 是 Integer Core节点数量。
取值范围:[1~500]
Core节点默认的最大值为500,
如果用户需要的Core节点数大于 500,请申请扩大配额。
billing_type 是 Integer 集群的计费模式。
12:表示按需计费。接口调用 仅支持创建按需计费集群。
data_center 是 String 集群区域信息,请参见终端节点 及区域。
vpc 是 String 子网所在VPC名称。 通过VPC管
理控制台获取名称:
1. 登录管理控制台。
2. 单击“虚拟私有云”,从左 侧列表选择虚拟私有云。
在“虚拟私有云”页面的列表中 即可获取VPC名称。
参数 是否必选 参数类型 描述 master_node_
size 是 String Master节点的实例规格,例
如:c3.4xlarge.
2.linux.bigdata。MRS当前支持 主机规格的配型由CPU+内存 +Disk共同决定。实例规格详细 说明请参见MRS所使用的弹性 云服务器规格和MRS所使用的 裸金属服务器规格。 该参数建 议从MRS控制台的集群创建页面 获取对应区域对应版本所支持的 规格。
core_node_siz
e 是 String Core节点的实例规格,例如:
c3.4xlarge.2.linux.bigdata。实 例规格详细说明请参见MRS所 使用的弹性云服务器规格和 MRS所使用的裸金属服务器规 格。 该参数建议从MRS控制台 的集群创建页面获取对应区域对 应版本所支持的规格。
component_li
st 是 Array of
component_li st objects
服务组件安装列表信息。
参数 是否必选 参数类型 描述 available_zon
e_id 是 String 可用分区ID。
●
参数 是否必选 参数类型 描述
vpc_id 是 String 子网所在VPC ID。 通过VPC管 理控制台获取ID:
1. 登录管理控制台。
2. 单击“虚拟私有云”,从左 侧列表选择虚拟私有云。
在“虚拟私有云”页面的列表中 即可获取VPC ID。
subnet_id 是 String 子网ID。通过VPC管理控制台获 取子网ID:
1. 登录管理控制台。
2. 单击“虚拟私有云”,从左 侧列表选择虚拟私有云。
3. 单击对应虚拟私有云所在行 的“子网个数”查看子网。
4. 单击对应子网名称,获取
“网络ID”。
“subnet_id”和
“subnet_name”必须至少填写 一个,当这两个参数同时配置但 是不匹配同一个子网时,集群会 创建失败,请仔细填写参数。推 荐使用“subnet_id”。
subnet_name 是 String 子网名称。 通过VPC管理控制 台获取子网名称:
1. 登录管理控制台。
2. 单击“虚拟私有云”,从左 侧列表选择虚拟私有云。
3. 单击对应虚拟私有云所在行 的“子网个数”查看子网,
获取子网名称。
“subnet_id”和
“subnet_name”必须至少填写 一个,当这两个参数同时配置但 是不匹配同一个子网时,集群会 创建失败,请仔细填写参数。当 仅填写“subnet_name”一个参 数且VPC下存在同名子网时,创 建集群时以VPC平台第一个名称 的子网为准。推荐使用
“subnet_id”。
参数 是否必选 参数类型 描述 security_grou
ps_id 否 String 集群安全组的ID。
● 当该ID为空时MRS后台会自 己创建安全组,自动创建的 安全组名称以
mrs_{cluster_name}开头。
● 当该ID不为空时,表示使用 固定安全组来创建集群,传 入的ID必须是当前租户中包 含的安全组ID,且该安全组 中包含一条全部协议,全部 端口,源地址为指定的管理 面节点IP的入方向规则。
add_jobs 否 Array of add_jobs objects
创建集群时可同时提交作业,当 前版本暂时只支持新增一个作 业。
volume_size 否 Integer Master和Core节点数据磁盘存 储空间。为增大数据存储容量,
创建集群时可同时添加磁盘。可 以根据如下应用场景合理选择磁 盘存储空间大小:
● 数据存储和计算分离,数据 存储在OBS系统中,集群费 用相对较低,计算性能不 高,并且集群随时可以删 除,建议数据计算不频繁场 景下使用。
● 数据存储和计算不分离,数 据存储在HDFS中,集群费用 相对较高,计算性能高,集 群需要长期存在,建议数据 计算频繁场景下使用。
取值范围:100GB~
32000GB,传值只需填数字,
不需要带单位GB。 不建议使用 该参数,详情请参考
volume_type参数的说明。
参数 是否必选 参数类型 描述
volume_type 否 String Master和Core节点的磁盘存储 类别,目前支持SATA、SAS、
● SATA:普通IO
● SAS:高IO
● SSD:超高IO
● GPSSD:通用型SSD master_data_
volume_type 否 String 该参数为多磁盘参数,表示 Master节点数据磁盘存储类 别,目前支持SATA、SAS、SSD 和GPSSD。
master_data_
volume_size 否 Integer 该参数为多磁盘参数,表示 Master节点数据磁盘存储空
volume_count 否 Integer 该参数为多磁盘参数,表示 Master节点数据磁盘个数。取 值只能是1。
core_data_vol
ume_type 否 String 该参数为多磁盘参数,表示Core 节点数据磁盘存储类别,目前支 持SATA、SAS、SSD和GPSSD。
core_data_vol
ume_size 否 Integer 该参数为多磁盘参数,表示Core 节点数据磁盘存储空间。为增大
ume_count 否 Integer 该参数为多磁盘参数,表示Core 节点数据磁盘个数。 取值范 围:1~10
参数 是否必选 参数类型 描述 task_node_gr
oups 否 Array of
task_node_gr oups objects
Task节点列表信息。
bootstrap_scri
pts 否 Array of
bootstrap_scr ipt objects
配置引导操作脚本信息。
node_public_c
ert_name 否 String 密钥对名称。用户可以使用密钥
对方式登录集群节点。当
“login_mode”配置为“1”
时,请求消息体中包含
node_public_cert_name字段。
cluster_admin
_secret 否 String 配置MRS Manager管理员用户 的密码。
r_secret 是 String 配置访问集群节点的root密码。
当“login_mode”配置为“0”
参数 是否必选 参数类型 描述
safe_mode 是 Integer MRS集群运行模式。
● 0:普通集群,表示Kerberos 认证关闭,用户可使用集群 提供的所有功能。
● 1:安全集群,表示Kerberos 认证开启,普通用户无权限 使用MRS集群的“文件管 理”和“作业管理”功能,
并且无法查看Hadoop、
Spark的作业记录以及集群资 源使用情况。如果需要使用 集群更多功能,需要找MRS Manager的管理员分配权 限。
cluster_type 否 Integer 集群类型。
默认值为0:分析集群。
说明:暂不支持通过接口方式创 建混合集群。
枚举值:
● 0:分析集群
● 1:流式集群
log_collection 否 Integer 集群创建失败时,是否收集失败 日志。
默认设置为1,将创建OBS桶仅 用于MRS集群创建失败时的日志 收集。
枚举值:
● 0:不收集
● 1:收集 enterprise_pro
ject_id 否 String 企业项目ID。
创建集群时,给集群绑定企业项 目ID。
默认设置为0,表示为default企 业项目。
获取方式请参见《企业管理API 参考》的“查询企业项目列表”
响应消息表
“enterprise_project字段数据 结构说明”的“id”。
参数 是否必选 参数类型 描述 tags 否 Array of tag
objects 集群的标签信息。
同一个集群最多能使用10个 tag,tag的名称(key)不能重 复 标签的键/值不能包含“=”,
“*”,“<”,“>”,“\”,“,”,
“|”,“/”。
login_mode 否 Integer 集群登录方式。默认设置为1。
● 当“login_mode”配置为
“0”时,请求消息体中包含 cluster_master_secret字段。
● 当“login_mode”配置为
“1”时,请求消息体中包含 node_public_cert_name字 段。
枚举值:
● 0:密码方式
● 1:密钥对方式 node_groups 否 Array of
NodeGroupV 11 objects
节点列表信息。
说明:如下参数和该参数任选一 组进行配置即可。
master_node_num、
master_node_size、
core_node_num、
core_node_size、
master_data_volume_type、
master_data_volume_size、
master_data_volume_count、
core_data_volume_type、
core_data_volume_size、
core_data_volume_count、
volume_type、volume_size、
task_node_groups。
表6-3 component_list
参数 是否必选 参数类型 描述
component_n
ame 是 String 组件名称
表6-4 add_jobs
参数 是否必选 参数类型 描述
job_type 是 Integer 作业类型码。
● 1:MapReduce
● 2:Spark
● 3:Hive Script
● 4:HiveSQL(当前不支持)
● 5:DistCp,导入、导出数 据,(当前不支持)。
● 6:Spark Script
● 7:Spark SQL,提交SQL语 句,(当前不支持)。
job_name 是 String 作业名称。 只能由字母、数
字、中划线和下划线组成,并且 长度为1~64个字符。
说明: 不同作业的名称允许相 同,但不建议设置相同。
jar_path 否 String 执行程序Jar包或sql文件地址,
需要满足如下要求:
● 最多为1023字符,不能包含;|
&>,<'$特殊字符,且不可为 空或全空格。
● 文件可存储于HDFS或者OBS 中,不同的文件系统对应的 路径存在差异。
– OBS:以“s3a://”开 头。不支持KMS加密的文 件或程序。
– HDFS:以“/”开头。
● Spark Script需要以“.sql”
结尾,MapReduce和Spark Jar需要以“.jar”结尾,sql 和jar不区分大小写。
arguments 否 String 程序执行的关键参数,该参数由
用户程序内的函数指定,MRS只 负责参数的传入。 最多为 150000字符,不能包含;|&>'<
$特殊字符,可为空。
参数 是否必选 参数类型 描述
input 否 String 数据输入地址。 文件可存储于
HDFS或者OBS中,不同的文件 系统对应的路径存在差异。
● OBS:以“s3a://”开头。不 支持KMS加密的文件或程
● OBS:以“s3a://”开头。
● HDFS:以“/”开头。
如果该路径不存在,系统会自动 创建。 最多为1023字符,不能 包含;|&>'<$特殊字符,可为 空。
job_log 否 String 作业日志存储地址,该日志信息
记录作业运行状态。 文件可存 储于HDFS或者OBS中,不同的 文件系统对应的路径存在差异。
● OBS:以“s3a://”开头。
● HDFS:以“/”开头。
最多为1023字符,不能包含;|
&>'<$特殊字符,可为空。
hive_script_pa
th 否 String sql程序路径,仅Spark Script和
th 否 String sql程序路径,仅Spark Script和