更新时间:2024-08-07 GMT+08:00

创建集群并提交作业

功能介绍

创建一个MRS集群并提交作业,并支持作业完成后删除集群,支持MRS 1.8.9及以上集群版本使用。使用接口前,您需要先获取下的资源信息。

  • 通过VPC创建或查询VPC、子网
  • 通过ECS创建或查询密钥对
  • 通过终端节点获取区域信息
  • 参考获取MRS集群信息获取MRS版本及对应版本支持的组件信息。

接口约束

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

POST /v2/{project_id}/run-job-flow

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

项目编号。获取方法,请参见获取项目ID

约束限制:

不涉及

取值范围:

只能由英文字母和数字组成,且长度为[1-64]个字符。

默认取值:

不涉及

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

is_dec_project

Boolean

参数解释:

说明是否为专属云的资源。

约束限制:

不涉及

取值范围:

  • true:是专属云的资源。
  • false:不是专属云的资源。

默认取值:

false

cluster_version

String

参数解释:

集群版本。例如:MRS 3.1.0。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

cluster_name

String

参数解释:

集群名称。

约束限制:

不涉及

取值范围:

不允许相同。

只能由字母、数字、中划线和下划线组成,并且长度为1~64个字符。

默认取值:

不涉及

cluster_type

String

参数解释:

集群类型。

约束限制:

不涉及

取值范围:

  • ANALYSIS:分析集群
  • STREAMING:流式集群
  • MIXED:混合集群
  • CUSTOM:自定义集群,仅MRS 3.x版本支持。

默认取值:

不涉及

charge_info

ChargeInfo object

参数解释:

计费类型信息,具体参数说明请参考表7

约束限制:

不涉及

region

String

参数解释:

集群所在区域信息,请参见终端节点

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

vpc_name

String

参数解释:

子网所在VPC名称。通过VPC管理控制台获取名称:

  1. 登录VPC管理控制台。
  2. 单击“虚拟私有云”,从左侧列表选择虚拟私有云。在“虚拟私有云”页面的列表中即可获取VPC名称。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

subnet_id

String

参数解释:

子网ID。通过VPC管理控制台获取子网ID:

  1. 登录VPC管理控制台。
  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”。

取值范围:

不涉及

默认取值:

不涉及

components

String

参数解释:

组件名称列表,用逗号分隔。支持的组件请参见获取MRS集群信息页面的“MRS服务支持的组件”内容。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

external_datasources

Array of ClusterDataConnectorMap objects

参数解释:

部署Hive和Ranger等组件时,可以关联数据连接,将元数据存储于关联的数据库,具体参数说明请参考表3

约束限制:

不涉及

availability_zone

String

参数解释:

可用分区名称,不支持多AZ集群。可用分区信息请参见终端节点

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

security_groups_id

String

参数解释:

集群安全组的ID。

  • 当该ID为空时MRS后台会自动创建安全组,自动创建的安全组名称以mrs_{cluster_name}开头。
  • 当该ID不为空时,表示使用固定安全组来创建集群,传入的ID必须是当前租户中包含的安全组ID,且该安全组中需要包含一条支持全部协议、全部端口、源地址为指定的管理面节点IP的入方向规则。
  • 支持多个安全组ID,以逗号分隔。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

auto_create_default_security_group

Boolean

参数解释:

是否要创建MRS集群默认安全组。

约束限制:

当指定该参数为true,则无论“security_groups_id”参数是否指定,都会为集群创建默认安全组。

取值范围:

  • true:创建MRS集群默认安全组。
  • false:不创建MRS集群默认安全组。

默认取值:

false

safe_mode

String

参数解释:

MRS集群运行模式。

约束限制:

不涉及

取值范围:

  • SIMPLE:普通集群,表示Kerberos认证关闭,用户可使用集群提供的所有功能。
  • KERBEROS:安全集群,表示Kerberos认证开启,普通用户无权限使用MRS集群的“文件管理”和“作业管理”功能,并且无法查看Hadoop、Spark的作业记录以及集群资源使用情况。如果需要使用集群更多功能,需要找Manager的管理员分配权限。

默认取值:

不涉及

manager_admin_password

String

参数解释:

配置Manager管理员用户的密码。

约束限制:

不涉及

取值范围:

  • 密码长度应在8~26个字符之间。
  • 至少包含四种字符组合,如大写字母,小写字母,数字,特殊字符(!@$%^-_=+[{}]:,./?),但不能包含空格。
  • 不能与用户名或者倒序用户名相同。

默认取值:

不涉及

login_mode

String

参数解释:

节点登录方式。

约束限制:

不涉及

取值范围:

  • PASSWORD:密码登录,选择此项时,node_root_password不能为空。
  • KEYPAIR:密钥对登录,选择此项时,node_keypair_name不能为空。

默认取值:

不涉及

node_root_password

String

参数解释:

配置访问集群节点的root密码。

约束限制:

不涉及

取值范围:

  • 字符串类型,可输入的字符串长度为8-26。
  • 至少包含四种字符组合,如大写字母,小写字母,数字,特殊字符(!@$%^-_=+[{}]:,./?),但不能包含空格。
  • 不能与用户名或者倒序用户名相同。

默认取值:

不涉及

node_keypair_name

String

参数解释:

密钥对名称。用户可以使用密钥对方式登录集群节点。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

enterprise_project_id

String

参数解释:

企业项目ID。创建集群时,给集群绑定企业项目ID。默认设置为0,表示为default企业项目。获取方式请参见《企业管理API参考》的“查询企业项目列表”响应消息表“enterprise_project字段数据结构说明”的“id”。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

默认设置为0,表示为default企业项目。

eip_address

String

参数解释:

与MRS集群绑定的弹性公网IP,可实现使用弹性公网IP访问Manager的目的。该弹性公网IP必须已经创建且与集群在同一区域。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

eip_id

String

参数解释:

绑定的弹性公网IP的ID。

约束限制:

当“eip_address”配置时,该参数必须配置,用于表示绑定的弹性公网IP的ID。可通过在VPC服务的“网络控制台 > 弹性公网IP和带宽 > 弹性公网IP”页面单击待绑定的弹性公网IP,在基本信息中获取“ID”。

取值范围:

不涉及

默认取值:

不涉及

mrs_ecs_default_agency

String

参数解释:

集群节点默认绑定的委托名称,固定为MRS_ECS_DEFAULT_AGENCY。通过绑定委托,您可以将部分资源共享给ECS或BMS云服务来管理,例如通过配置ECS委托可自动获取AK/SK访问OBS。MRS_ECS_DEFAULT_AGENCY委托拥有对象存储服务的OBS OperateAccess权限和在集群所在区域拥有CES FullAccess(对开启细粒度策略的用户)、CES Administrator和KMS Administrator权限。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

template_id

String

参数解释:

当集群类型为CUSTOM时,用于指定节点部署所使用的模板。

  • mgmt_control_combined_v2:管控合设模板,管理角色和控制角色共同部署在Master节点中,数据实例合设在同一节点组。该部署方式适用于100个以下的节点,可以减少成本。
  • mgmt_control_separated_v2:管控分设模板,管理角色和控制角色分别部署在不同的Master节点中,数据实例合设在同一节点组。该部署方式适用于100-500个节点,在高并发负载情况下表现更好。
  • mgmt_control_data_separated_v2:数据分设模板,管理角色和控制角色分别部署在不同的Master节点中,数据实例分设在不同节点组。该部署方式适用于500个以上的节点,可以将各组件进一步分开部署,适用于更大的集群规模。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

tags

Array of Tag objects

参数解释:

集群的标签信息,具体参数说明请参考表4

约束限制:

同一个集群最多能使用10个tag,tag的名称(key)不能重复。

log_collection

Integer

参数解释:

集群创建失败时,是否收集失败日志。

约束限制:

不涉及

取值范围:

  • 0:不创建OBS桶仅用于MRS集群创建失败时的日志收集。
  • 1:创建OBS桶仅用于MRS集群创建失败时的日志收集。

默认取值:

1

node_groups

Array of NodeGroupV2 objects

参数解释:

组成集群的节点组信息,具体参数说明请参考表5

约束限制:

不涉及

bootstrap_scripts

Array of BootstrapScript objects

参数解释:

配置引导操作脚本信息,具体参数说明请参考表13

约束限制:

不涉及

log_uri

String

参数解释:

集群日志转储至OBS的具体路径。开启日志转储功能后,日志上传需要对应OBS路径的读写权限,请配置MRS_ECS_DEFULT_AGENCY默认委托或具有对应OBS路径读写权限的自定义委托。具体请参见配置存算分离集群(委托方式)。该参数只适用于支持“集群日志转储OBS”特性的集群版本。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

component_configs

Array of ComponentConfig objects

参数解释:

集群组件自定义配置。该参数只适用于支持“自定义组件配置创建集群”特性的集群版本,具体参数说明请参考表14

约束限制:

不能超过50条。

delete_when_no_steps

Boolean

参数解释:

作业完成后是否自动删除集群。

约束限制:

不涉及

取值范围:

  • true:作业完成后自动删除集群。
  • false:作业完成后不自动删除集群。

默认取值:

false。

steps

Array of StepConfig objects

参数解释:

作业列表,具体参数说明请参考表16

约束限制:

不能超过255条。

表3 ClusterDataConnectorMap

参数

是否必选

参数类型

描述

map_id

Integer

参数解释:

数据连接关联ID值。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

connector_id

String

参数解释:

数据连接ID值。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

component_name

String

参数解释:

组件名。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

role_type

String

参数解释:

组件角色类型。

约束限制:

不涉及

取值范围:

  • hive_metastore:Hive Metastore角色
  • hive_data:Hive角色
  • hbase_data:Hbase角色
  • ranger_data:Ranger角色

默认取值:

不涉及

source_type

String

参数解释:

数据连接类型。

约束限制:

不涉及

取值范围:

  • LOCAL_DB:本地元数据
  • RDS_POSTGRES:RDS服务PostgreSQL数据库
  • RDS_MYSQL:RDS服务MySQL数据库
  • gaussdb-mysql:云数据库GaussDB(for MySQL)

默认取值:

不涉及

cluster_id

String

参数解释:

关联集群ID。

约束限制:

不涉及

取值范围:

只能由英文字母、数字以及“_”和“-”组成,且长度为[1-64]个字符。

默认取值:

不涉及

status

Integer

参数解释:

数据连接状态。

约束限制:

不涉及

取值范围:

  • 0:代表正常状态
  • 1:代表使用中

默认取值:

不涉及

表4 Tag

参数

是否必选

参数类型

描述

key

String

参数解释:

标签的键。

约束限制:

不涉及

取值范围:

  • 标签的key值可以包含任意语种字母、数字、空格和_.:=+-@,但首尾不能含有空格,不能以_sys_开头。
  • 同一资源的key值不能重复。
  • 最大长度128个unicode字符,不能为空字符串。

默认取值:

不涉及

value

String

参数解释:

标签的值。

约束限制:

不涉及

取值范围:

  • 标签的value值可以包含任意语种字母、数字、空格和_.:=+-@,但首尾不能含有空格,不能以_sys_开头。
  • 最大长度255个unicode字符,可以为空字符串。

默认取值:

不涉及

表5 NodeGroupV2

参数

是否必选

参数类型

描述

group_name

String

参数解释:

节点组名称。

约束限制:

不涉及

取值范围:

最大长度64,支持大小写英文、数字以及“_”。节点组配置原则如下:

  • master_node_default_group:Master节点组,所有集群类型均需包含该节点组。
  • core_node_analysis_group:分析Core节点组,分析集群、混合集群均需包含该节点组。
  • core_node_streaming_group:流式Core节点组,流式集群和混合集群均需包含该节点组。
  • task_node_analysis_group:分析Task节点组,分析集群和混合集群可根据需要选择该节点组。
  • task_node_streaming_group:流式Task节点组,流式集群、混合集群可根据需要选择该节点组。
  • node_group{x}:自定义集群节点组,可根据需要添加多个,最多支持添加9个该节点组。

默认取值:

不涉及

node_num

Integer

参数解释:

节点数量。

约束限制:

Core与Task节点总数最大为500个。

取值范围:

0-500

默认取值:

不涉及

node_size

String

参数解释:

节点的实例规格。例如:c3.4xlarge.2.linux.bigdata。实例规格详细说明请参见MRS所使用的弹性云服务器规格MRS所使用的裸金属服务器规格。 该参数建议从MRS控制台的集群创建页面获取对应区域对应版本所支持的规格。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

root_volume

Volume object

参数解释:

节点系统盘信息,部分虚拟机或BMS自带系统盘的情况该参数可选,其他情况该参数必,具体参数说明请参考表6

约束限制:

不涉及

data_volume

Volume object

参数解释:

节点数据盘信息,具体参数说明请参考表6

约束限制:

当data_volume_count不为0时,该参数必选。

data_volume_count

Integer

参数解释:

节点数据磁盘存储数目。

约束限制:

不涉及

取值范围:

0-20

默认取值:

不涉及

charge_info

ChargeInfo object

参数解释:

节点组的计费类型,Master和Core节点组是和集群的计费类型一致,Task节点组可以和集群的计费类型不同,具体参数说明请参考表7

约束限制:

不涉及

auto_scaling_policy

AutoScalingPolicy object

参数解释:

弹性伸缩规则信息,具体参数说明请参考表8

约束限制:

不涉及

assigned_roles

Array of strings

参数解释:

当集群类型为CUSTOM时,该参数必选。可以指定节点组中部署的角色,该参数是一个字符串数组,每个字符串表示一个角色表达式。角色表达式定义:

  • 当该角色在节点组所有节点部署时:{role name},如“DataNode”。
  • 当该角色在节点组指定下标节点部署时:{role name}:{index1},{index2}…,{indexN},如“NameNode:1,2”,下标从1开始计数。
  • 部分角色支持多实例部署(即在一个节点部署多个同角色的实例):{role name}[{instance count}],如“EsNode[9]” 可选的角色请参考MRS支持的角色与组件对应表

约束限制:

不涉及

表6 Volume

参数

是否必选

参数类型

描述

type

String

参数解释:

磁盘类型。

约束限制:

不涉及

取值范围:

  • SATA:普通IO磁盘类型。
  • SAS:高IO磁盘类型。
  • SSD:超高IO磁盘类型。
  • GPSSD:通用型SSD磁盘类型

默认取值:

不涉及

size

Integer

参数解释:

数据盘大小,容量单位为GB。

约束限制:

不涉及

取值范围:

10-32768

默认取值:

不涉及

表7 ChargeInfo

参数

是否必选

参数类型

描述

charge_mode

String

参数解释:

计费模式。

约束限制:

不涉及

取值范围:

  • prePaid:预付费,即包年/包月。创建集群接口现已支持预付费,创建集群并提交作业接口暂不支持预付费。
  • postPaid:后付费,即按需计费。

默认取值:

不涉及

period_type

String

参数解释:

周期类型。

约束限制:

不涉及

取值范围:

  • month:包月。
  • year: 包年。
  • day:按需计费。

默认取值:

不涉及

period_num

Integer

参数解释:

周期数。

约束限制:

“charge_mode”为“prePaid”时生效,且为必选值,指定订购的时间。

取值范围:

  • 当“period_type”为“month”时,取值为1~9。
  • 当“period_type”为“year”时,取值为1~3。

默认取值:

不涉及

is_auto_pay

Boolean

参数解释:

是否自动支付,包周期模式下使用,下单订购后,是否自动从客户的账户中支付,而不需要客户手动去进行支付,默认为手动支付。

约束限制:

不涉及

取值范围:

  • true:自动支付,会自动选择折扣和优惠券进行优惠,然后自动从客户账户中支付,自动支付失败后会生成订单成功、但订单状态为“待支付”,等待客户手动支付。
  • false:手动支付,需要客户手动去支付,客户可以选择折扣和优惠券。

默认取值:

false

表8 AutoScalingPolicy

参数

是否必选

参数类型

描述

auto_scaling_enable

Boolean

当前自动伸缩规则是否开启。

min_capacity

Integer

指定该节点组的最小保留节点数。取值范围:[0~500]

max_capacity

Integer

指定该节点组的最大节点数。取值范围:[0~500]

resources_plans

Array of ResourcesPlan objects

资源计划列表。若该参数为空表示不启用资源计划。当启用弹性伸缩时,资源计划与自动伸缩规则需至少配置其中一种,具体参数说明请参考表9

rules

Array of Rule objects

自动伸缩的规则列表。当启用弹性伸缩时,资源计划与自动伸缩规则需至少配置其中一种,具体参数说明请参考表10

exec_scripts

Array of ScaleScript objects

弹性伸缩自定义自动化脚本列表。若该参数为空表示不启用自动化脚本,具体参数说明请参考表12

表9 ResourcesPlan

参数

是否必选

参数类型

描述

period_type

String

参数解释:

资源计划的周期类型,当前只允许以下类型:daily。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

start_time

String

参数解释:

资源计划的起始时间,格式为“hour:minute”,表示时间在0:00-23:59之间。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

end_time

String

参数解释:

资源计划的结束时间,格式与“start_time”相同。

约束限制:

不早于start_time表示的时间,且与start_time间隔不小于30min。

取值范围:

不涉及

默认取值:

不涉及

min_capacity

Integer

参数解释:

资源计划内该节点组的最小保留节点数。

约束限制:

不涉及

取值范围:

0-500

默认取值:

不涉及

max_capacity

Integer

参数解释:

资源计划内该节点组的最大保留节点数。

约束限制:

不涉及

取值范围:

0-500

默认取值:

不涉及

effective_days

Array of strings

参数解释:

资源计划的生效日期,为空时代表每日,另外也可为以下返回值:

MONDAY(周一)、TUESDAY(周二)、WEDNESDAY(周三)、THURSDAY(周四)、FRIDAY(周五)、SATURDAY(周六)、SUNDAY(周日)

约束限制:

不涉及

表10 Rule

参数

是否必选

参数类型

描述

name

String

参数解释:

弹性伸缩规则的名称。

约束限制:

不涉及

取值范围:

只能由英文字母、数字以及“_”和“-”组成,且长度为[1-64]个字符。

在一个节点组范围内,不允许重名。

默认取值:

不涉及

description

String

参数解释:

弹性伸缩规则的说明。

约束限制:

不涉及

取值范围:

长度为[0-1024]个字符。

默认取值:

不涉及

adjustment_type

String

参数解释:

弹性伸缩规则的调整类型。

约束限制:

不涉及

取值范围:

  • scale_out:扩容
  • scale_in:缩容

默认取值:

不涉及

cool_down_minutes

Integer

参数解释:

触发弹性伸缩规则后,该集群处于冷却状态(不再执行弹性伸缩操作)的时长,单位为分钟。

约束限制:

不涉及

取值范围:

0-10080。10080为一周的分钟数。

默认取值:

不涉及

scaling_adjustment

Integer

参数解释:

单次调整集群节点的个数。

约束限制:

不涉及

取值范围:

1-100

默认取值:

不涉及

trigger

Trigger object

参数解释:

描述该规则触发条件,具体参数说明请参考表11

约束限制:

不涉及

表11 Trigger

参数

是否必选

参数类型

描述

metric_name

String

参数解释:

指标名称。该触发条件会依据该名称对应指标的值来进行判断。

约束限制:

不涉及

取值范围:

长度为[0-64]个字符。

默认取值:

不涉及

metric_value

String

参数解释:

指标阈值。触发该条件的指标阈值,只允许输入整数或者带两位小数的数。

约束限制:

不涉及

取值范围:

只允许输入整数或者带两位小数的数。

默认取值:

不涉及

comparison_operator

String

参数解释:

指标判断逻辑运算符。

约束限制:

不涉及

取值范围:

  • LT:小于
  • GT:大于
  • LTOE:小于等于
  • GTOE:大于等于

默认取值:

不涉及

evaluation_periods

Integer

参数解释:

判断连续满足指标阈值的周期数(一个周期为5分钟)。

约束限制:

不涉及

取值范围:

1-288

默认取值:

不涉及

表12 ScaleScript

参数

是否必选

参数类型

描述

name

String

参数解释:

弹性伸缩自定义自动化脚本的名称。

约束限制:

不涉及

取值范围:

同一个集群的自定义自动化脚本名称不允许相同。只能由数字、英文字符、空格、中划线和下划线组成,且不能以空格开头。可输入的字符串长度为1~64个字符。

默认取值:

不涉及

uri

String

参数解释:

自定义自动化脚本的路径。设置为OBS桶的路径或虚拟机本地的路径。

  • OBS桶的路径:直接手动输入脚本路径。示例:obs://XXX/scale.sh
  • 虚拟机本地的路径:用户需要输入正确的脚本路径。脚本所在的路径必须以‘/’开头,以.sh结尾。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

parameters

String

参数解释:

自定义自动化脚本参数。多个参数间用空格隔开。可以传入以下系统预定义参数:

  • ${mrs_scale_node_num}:扩缩容节点数
  • ${mrs_scale_type}:扩缩容类型,扩容为scale_out,缩容为scale_in
  • ${mrs_scale_node_hostnames}:扩缩容的节点主机名称
  • ${mrs_scale_node_ips}:扩缩容的节点IP
  • ${mrs_scale_rule_name}:触发扩缩容的规则名。其他用户自定义参数使用方式与普通shell脚本相同,多个参数中间用空格隔开。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

nodes

Array of strings

参数解释:

自定义自动化脚本所执行的节点组名称。

约束限制:

不涉及

active_master

Boolean

参数解释:

自定义自动化脚本是否只运行在主Master节点上。

约束限制:

不涉及

取值范围:

  • true:自定义自动化脚本只运行在主Master节点上。
  • false:自定义自动化脚本可运行在所有Master节点上。

默认取值:

false

fail_action

String

参数解释:

自定义自动化脚本执行失败后,是否继续执行后续脚本和创建集群。建议您在调试阶段设置为“continue”,无论此自义自动化脚本是否执行成功,则集群都能继续安装和启动。

约束限制:

由于缩容成功无法回滚,因此缩容后执行的脚本“fail_action”必须设置为“continue”。

取值范围:

  • continue:继续执行后续脚本。
  • errorout:终止操作。

默认取值:

不涉及

action_stage

String

参数解释:

脚本执行时机。

约束限制:

不涉及

取值范围:

  • before_scale_out:扩容前
  • before_scale_in:缩容前
  • after_scale_out:扩容后
  • after_scale_in:缩容后

默认取值:

不涉及

表13 BootstrapScript

参数

是否必选

参数类型

描述

name

String

参数解释:

引导操作脚本的名称。

约束限制:

不涉及

取值范围:

同一个集群的引导操作脚本名称不允许相同。只能由数字、英文字符、空格、中划线和下划线组成,且不能以空格开头。可输入的字符串长度为1~64个字符。

默认取值:

不涉及

uri

String

参数解释:

引导操作脚本的路径。设置为OBS桶的路径或虚拟机本地的路径。OBS桶的路径:直接手动输入脚本路径。例如输入MRS提供的公共样例脚本路径。示例:obs://bootstrap/presto/presto-install.sh,其中安装dualroles时,presto-install.sh脚本参数为dualroles, 安装worker时,presto-install.sh脚本参数为worker。根据Presto使用习惯,建议您在Active Master节点上安装dualroles,在Core节点上安装worker。- 虚拟机本地的路径:用户需要输入正确的脚本路径。脚本所在的路径必须以‘/’开头,以.sh结尾。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

parameters

String

参数解释:

引导操作脚本参数。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

nodes

Array of strings

参数解释:

引导操作脚本所执行的节点组名称。

约束限制:

不涉及

active_master

Boolean

参数解释:

引导操作脚本是否只运行在主Master节点上。

约束限制:

不涉及

取值范围:

  • true:引导操作脚本只运行在主Master节点上。
  • false:引导操作脚本可运行在所有Master节点上。

默认取值:

不涉及

fail_action

String

参数解释:

引导操作脚本执行失败后,是否继续执行后续脚本和创建集群。默认值为errorout,表示终止操作。说明:建议您在调试阶段设置为“继续”,无论此引导操作是否执行成功,则集群都能继续安装和启动。

约束限制:

不涉及

取值范围:

  • continue:继续执行后续脚本。
  • errorout:终止操作。

默认取值:

errorout

before_component_start

Boolean

参数解释:

引导操作脚本执行的时间。目前支持“组件启动前”和“组件启动后”两种类型。

约束限制:

不涉及

取值范围:

  • true:引导操作脚本在组件启动前执行。
  • false:引导操作脚本在组件启动后执行。

默认取值:

false

start_time

Long

参数解释:

单个引导操作脚本的执行时间。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

state

String

参数解释:

单个引导操作脚本的运行状态。

约束限制:

不涉及

取值范围:

  • PENDING:挂起
  • IN_PROGRESS:处理中
  • SUCCESS:处理成功
  • FAILURE:处理失败

默认取值:

不涉及

action_stages

Array of strings

参数解释:

选择引导操作脚本执行的时间。

约束限制:

参数枚举值:

  • BEFORE_COMPONENT_FIRST_START: 组件首次启动前
  • AFTER_COMPONENT_FIRST_START: 组件首次启动后
  • BEFORE_SCALE_IN: 缩容前
  • AFTER_SCALE_IN: 缩容后
  • BEFORE_SCALE_OUT: 扩容前
  • AFTER_SCALE_OUT: 扩容后
表14 ComponentConfig

参数

是否必选

参数类型

描述

component_name

String

参数解释:

组件名称。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

configs

Array of Config objects

参数解释:

组件配置项列表,具体参数说明请参考表15

约束限制:

不能超过100条。

表15 Config

参数

是否必选

参数类型

描述

key

String

参数解释:

配置名,仅支持MRS组件配置页面上所展示的配置名。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

value

String

参数解释:

配置值。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

config_file_name

String

参数解释:

配置文件名,仅支持MRS组件配置页面上所展示的文件名。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表16 StepConfig

参数

是否必选

参数类型

描述

job_execution

JobExecution object

参数解释:

作业参数,具体参数说明请参考表17

约束限制:

不涉及

表17 JobExecution

参数

是否必选

参数类型

描述

job_type

String

参数解释:

作业类型。

约束限制:

不涉及

取值范围:

  • MapReduce
  • SparkSubmit
  • SparkPython:该类型作业将转换为SparkSubmit类型提交,MRS控制台界面的作业类型展示为SparkSubmit,通过接口查询作业列表信息时作业类型请选择SparkSubmit。
  • HiveScript
  • HiveSql
  • DistCp,导入、导出数据。
  • SparkScript
  • SparkSql
  • Flink

默认取值:

不涉及

job_name

String

参数解释:

作业名称。

约束限制:

不涉及

取值范围:

只能由字母、数字、中划线和下划线组成,并且长度为1~64个字符。说明:不同作业的名称允许相同,但不建议设置相同。

默认取值:

不涉及

arguments

Array of strings

参数解释:

程序执行的关键参数,该参数由用户程序内的函数指定,MRS只负责参数的传入。

约束限制:

参数最多为150000字符,不能包含;|&>'<$!"\特殊字符,可为空。

说明:

  • 若输入带有敏感信息(如登录密码)的参数可能在作业详情展示和日志打印中存在暴露的风险,请谨慎操作。
  • 提交HiveScript或HiveSql类型的作业时如需以“obs://”开头格式访问存储在OBS上的文件,请在Hive服务配置页面搜索参数“core.site.customized.configs”,新增OBS的endpoint配置项,参数为“fs.obs.endpoint”,值请输入OBS对应的endpoint,具体请参考终端节点

properties

Map<String,String>

参数解释:

程序系统参数。

约束限制:

最多为2048字符,不能包含><|'`&!\特殊字符,可为空。

响应参数

状态码:200

表18 响应Body参数

参数

参数类型

描述

cluster_id

String

参数解释:

集群创建成功后系统返回的集群ID值。

取值范围:

不涉及

请求示例

创建一个版本号为MRS 3.2.0-LTS.1的自定义管控合设集群,并提交一个作业类型为HiveScript的作业。

POST /v2/{project_id}/run-job-flow

{
  "cluster_version" : "MRS 3.2.0-LTS.1",
  "cluster_name" : "mrs_heshe_dm",
  "cluster_type" : "CUSTOM",
  "charge_info" : {
    "charge_mode" : "postPaid"
  },
  "region" : "",
  "availability_zone" : "",
  "vpc_name" : "vpc-37cd",
  "subnet_id" : "1f8c5ca6-1f66-4096-bb00-baf175954f6e",
  "subnet_name" : "subnet",
  "components" : "Hadoop,Spark2x,HBase,Hive,Hue,Loader,Kafka,Storm,Flume,Flink,Oozie,Ranger,Tez",
  "safe_mode" : "KERBEROS",
  "manager_admin_password" : "your password",
  "login_mode" : "PASSWORD",
  "node_root_password" : "your password",
  "mrs_ecs_default_agency" : "MRS_ECS_DEFAULT_AGENCY",
  "template_id" : "mgmt_control_combined_v2",
  "log_collection" : 1,
  "tags" : [ {
    "key" : "tag1",
    "value" : "111"
  }, {
    "key" : "tag2",
    "value" : "222"
  } ],
  "node_groups" : [ {
    "group_name" : "master_node_default_group",
    "node_num" : 3,
    "node_size" : "Sit3.4xlarge.4.linux.bigdata",
    "root_volume" : {
      "type" : "SAS",
      "size" : 480
    },
    "data_volume" : {
      "type" : "SAS",
      "size" : 600
    },
    "data_volume_count" : 1,
    "assigned_roles" : [ "OMSServer:1,2", "SlapdServer:1,2", "KerberosServer:1,2", "KerberosAdmin:1,2", "quorumpeer:1,2,3", "NameNode:2,3", "Zkfc:2,3", "JournalNode:1,2,3", "ResourceManager:2,3", "JobHistoryServer:2,3", "DBServer:1,3", "Hue:1,3", "LoaderServer:1,3", "MetaStore:1,2,3", "WebHCat:1,2,3", "HiveServer:1,2,3", "HMaster:2,3", "MonitorServer:1,2", "Nimbus:1,2", "UI:1,2", "JDBCServer2x:1,2,3", "JobHistory2x:2,3", "SparkResource2x:1,2,3", "oozie:2,3", "LoadBalancer:2,3", "TezUI:1,3", "TimelineServer:3", "RangerAdmin:1,2", "UserSync:2", "TagSync:2", "KerberosClient", "SlapdClient", "meta", "HSConsole:2,3", "FlinkResource:1,2,3", "DataNode:1,2,3", "NodeManager:1,2,3", "IndexServer2x:1,2", "ThriftServer:1,2,3", "RegionServer:1,2,3", "ThriftServer1:1,2,3", "RESTServer:1,2,3", "Broker:1,2,3", "Supervisor:1,2,3", "Logviewer:1,2,3", "Flume:1,2,3", "HSBroker:1,2,3" ]
  }, {
    "group_name" : "node_group_1",
    "node_num" : 3,
    "node_size" : "Sit3.4xlarge.4.linux.bigdata",
    "root_volume" : {
      "type" : "SAS",
      "size" : 480
    },
    "data_volume" : {
      "type" : "SAS",
      "size" : 600
    },
    "data_volume_count" : 1,
    "assigned_roles" : [ "DataNode", "NodeManager", "RegionServer", "Flume:1", "Broker", "Supervisor", "Logviewer", "HBaseIndexer", "KerberosClient", "SlapdClient", "meta", "HSBroker:1,2", "ThriftServer", "ThriftServer1", "RESTServer", "FlinkResource" ]
  }, {
    "group_name" : "node_group_2",
    "node_num" : 1,
    "node_size" : "Sit3.4xlarge.4.linux.bigdata",
    "root_volume" : {
      "type" : "SAS",
      "size" : 480
    },
    "data_volume" : {
      "type" : "SAS",
      "size" : 600
    },
    "data_volume_count" : 1,
    "assigned_roles" : [ "NodeManager", "KerberosClient", "SlapdClient", "meta", "FlinkResource" ]
  } ],
  "log_uri" : "obs://bucketTest/logs",
  "delete_when_no_steps" : true,
  "steps" : [ {
    "job_execution" : {
      "job_name" : "import_file",
      "job_type" : "DistCp",
      "arguments" : [ "obs://test/test.sql", "/user/hive/input" ]
    }
  }, {
    "job_execution" : {
      "job_name" : "hive_test",
      "job_type" : "HiveScript",
      "arguments" : [ "obs://test/hive/sql/HiveScript.sql" ]
    }
  } ]
}

响应示例

状态码:200

正常响应示例。

{
  "cluster_id" : "da1592c2-bb7e-468d-9ac9-83246e95447a"
}

状态码

状态码请参见状态码

错误码

请参见错误码