创建集群并提交作业
功能介绍
创建一个MRS集群并提交作业,并支持作业完成后删除集群,支持MRS 1.8.9及以上集群版本使用。使用接口前,您需要先获取下的资源信息。
接口约束
无
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v2/{project_id}/run-job-flow
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目编号。获取方法,请参见获取项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
is_dec_project |
否 |
Boolean |
说明是否为专属云的资源,默认为false。 |
cluster_version |
是 |
String |
集群版本。例如:MRS 3.1.0。 |
cluster_name |
是 |
String |
集群名称,不允许相同。 只能由字母、数字、中划线和下划线组成,并且长度为1~64个字符。 |
cluster_type |
是 |
String |
集群类型,取值范围:
|
charge_info |
否 |
ChargeInfo object |
计费类型信息,具体参数说明请参考表7。 |
region |
是 |
String |
集群所在区域信息,请参见终端节点。 |
vpc_name |
是 |
String |
子网所在VPC名称。通过VPC管理控制台获取名称:
|
subnet_id |
否 |
String |
子网ID。通过VPC管理控制台获取子网ID:
|
subnet_name |
是 |
String |
子网名称。通过VPC管理控制台获取子网名称:
|
components |
是 |
String |
组件名称列表,用逗号分隔。支持的组件请参见获取MRS集群信息页面的“MRS服务支持的组件”内容。 |
external_datasources |
否 |
Array of ClusterDataConnectorMap objects |
部署Hive和Ranger等组件时,可以关联数据连接,将元数据存储于关联的数据库,具体参数说明请参考表3。 |
availability_zone |
是 |
String |
可用分区名称,不支持多AZ集群。可用分区信息请参见终端节点。 |
security_groups_id |
否 |
String |
集群安全组的ID。
|
auto_create_default_security_group |
否 |
Boolean |
是否要创建MRS集群默认安全组,默认为false。当指定该参数为true,则无论“security_groups_id”参数是否指定,都会为集群创建默认安全组。 |
safe_mode |
是 |
String |
MRS集群运行模式。
|
manager_admin_password |
是 |
String |
配置Manager管理员用户的密码。
|
login_mode |
是 |
String |
节点登录方式。
|
node_root_password |
否 |
String |
配置访问集群节点的root密码。密码设置约束如下:
|
node_keypair_name |
否 |
String |
密钥对名称。用户可以使用密钥对方式登录集群节点。 |
enterprise_project_id |
否 |
String |
企业项目ID。创建集群时,给集群绑定企业项目ID。默认设置为0,表示为default企业项目。获取方式请参见《企业管理API参考》的“查询企业项目列表”响应消息表“enterprise_project字段数据结构说明”的“id”。 |
eip_address |
否 |
String |
与MRS集群绑定的弹性公网IP,可实现使用弹性公网IP访问Manager的目的。该弹性公网IP必须已经创建且与集群在同一区域。 |
eip_id |
否 |
String |
当“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时,用于指定节点部署所使用的模板。
|
tags |
否 |
Array of Tag objects |
集群的标签信息。同一个集群最多能使用10个tag,tag的名称(key)不能重复,具体参数说明请参考表4。 |
log_collection |
否 |
Integer |
集群创建失败时,是否收集失败日志。默认设置为1,此时将创建OBS桶仅用于MRS集群创建失败时的日志收集。枚举值:
|
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。 |
delete_when_no_steps |
否 |
Boolean |
作业完成后是否自动删除集群,默认为false。 |
steps |
是 |
Array of StepConfig objects |
作业列表,具体参数说明请参考表16。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
map_id |
否 |
Integer |
数据连接关联ID值 |
connector_id |
否 |
String |
数据连接ID值 |
component_name |
否 |
String |
组件名 |
role_type |
否 |
String |
组件角色类型。
|
source_type |
否 |
String |
数据连接类型。
|
cluster_id |
否 |
String |
关联集群ID |
status |
否 |
Integer |
数据连接状态。
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
是 |
String |
键。
|
value |
是 |
String |
值。
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
group_name |
是 |
String |
节点组名称,最大长度64,支持大小写英文、数字以及“_”。节点组配置原则如下:
|
node_num |
是 |
Integer |
节点数量,取值范围0~500,Core与Task节点总数最大为500个。 |
node_size |
是 |
String |
节点的实例规格。例如:c3.4xlarge.2.linux.bigdata。实例规格详细说明请参见MRS所使用的弹性云服务器规格和MRS所使用的裸金属服务器规格。 该参数建议从MRS控制台的集群创建页面获取对应区域对应版本所支持的规格。 |
root_volume |
否 |
Volume object |
节点系统盘信息,部分虚拟机或BMS自带系统盘的情况该参数可选,其他情况该参数必,具体参数说明请参考表6。 |
data_volume |
否 |
Volume object |
节点数据盘信息,当data_volume_count不为0时,该参数必选,具体参数说明请参考表6。 |
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时,该参数必选。可以指定节点组中部署的角色,该参数是一个字符串数组,每个字符串表示一个角色表达式。角色表达式定义:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
type |
是 |
String |
磁盘类型。磁盘类型枚举值:
|
size |
是 |
Integer |
数据盘大小,容量单位为GB,输入大小范围为[10,32768]。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
charge_mode |
是 |
String |
计费模式。取值范围:
|
period_type |
否 |
String |
周期类型,取值范围:
|
period_num |
否 |
Integer |
周期数,“charge_mode”为“prePaid”时生效,且为必选值,指定订购的时间。取值范围:
|
is_auto_pay |
否 |
Boolean |
是否自动支付,包周期模式下使用,下单订购后,是否自动从客户的账户中支付,而不需要客户手动去进行支付,默认为手动支付。取值范围:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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(周日) |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
弹性伸缩规则的名称。只能由字母、数字、中划线和下划线组成,并且长度为1~64个字符。在一个节点组范围内,不允许重名。 |
description |
否 |
String |
弹性伸缩规则的说明。最大长度为1024字符。 |
adjustment_type |
是 |
String |
弹性伸缩规则的调整类型,只允许以下类型:枚举值:
|
cool_down_minutes |
是 |
Integer |
触发弹性伸缩规则后,该集群处于冷却状态(不再执行弹性伸缩操作)的时长,单位为分钟。取值范围[0~10080],10080为一周的分钟数。 |
scaling_adjustment |
是 |
Integer |
单次调整集群节点的个数。取值范围[1~100] |
trigger |
是 |
Trigger object |
描述该规则触发条件,具体参数说明请参考表11。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
metric_name |
是 |
String |
指标名称。该触发条件会依据该名称对应指标的值来进行判断。最大长度为64个字符。 |
metric_value |
是 |
String |
指标阈值。 触发该条件的指标阈值,只允许输入整数或者带两位小数的数。 |
comparison_operator |
否 |
String |
指标判断逻辑运算符,包括:
|
evaluation_periods |
是 |
Integer |
判断连续满足指标阈值的周期数(一个周期为5分钟)。取值范围[1~288] |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
弹性伸缩自定义自动化脚本的名称,同一个集群的自定义自动化脚本名称不允许相同。只能由数字、英文字符、空格、中划线和下划线组成,且不能以空格开头。可输入的字符串长度为1~64个字符。 |
uri |
是 |
String |
自定义自动化脚本的路径。设置为OBS桶的路径或虚拟机本地的路径。
|
parameters |
否 |
String |
自定义自动化脚本参数。多个参数间用空格隔开。可以传入以下系统预定义参数:
|
nodes |
是 |
Array of strings |
自定义自动化脚本所执行的节点组名称。 |
active_master |
否 |
Boolean |
自定义自动化脚本是否只运行在主Master节点上。默认值为false,表示自定义自动化脚本可运行在所有Master节点上。 |
fail_action |
是 |
String |
自定义自动化脚本执行失败后,是否继续执行后续脚本和创建集群。说明:
|
action_stage |
是 |
String |
脚本执行时机。枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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节点上。默认值为false,表示引导操作脚本可运行在所有Master节点上。 |
fail_action |
是 |
String |
引导操作脚本执行失败后,是否继续执行后续脚本和创建集群。默认值为errorout,表示终止操作。说明:建议您在调试阶段设置为“继续”,无论此引导操作是否执行成功,则集群都能继续安装和启动。枚举值:
|
before_component_start |
否 |
Boolean |
引导操作脚本执行的时间。目前支持“组件启动前”和“组件启动后”两种类型。默认值为false,表示引导操作脚本在组件启动后执行。 |
start_time |
否 |
Long |
单个引导操作脚本的执行时间。 |
state |
否 |
String |
单个引导操作脚本的运行状态。
|
action_stages |
否 |
Array of strings |
选择引导操作脚本执行的时间。
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
component_name |
是 |
String |
组件名称。 |
configs |
否 |
Array of Config objects |
组件配置项列表,具体参数说明请参考表15。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
是 |
String |
配置名,仅支持MRS组件配置页面上所展示的配置名。 |
value |
是 |
String |
配置值。 |
config_file_name |
是 |
String |
配置文件名,仅支持MRS组件配置页面上所展示的文件名。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
job_type |
是 |
String |
作业类型:
|
job_name |
是 |
String |
作业名称,只能由字母、数字、中划线和下划线组成,并且长度为1~64个字符。说明:不同作业的名称允许相同,但不建议设置相同。 |
arguments |
否 |
Array of strings |
程序执行的关键参数,该参数由用户程序内的函数指定,MRS只负责参数的传入。最多为150000字符,不能包含;|&>'<$!"\特殊字符,可为空。说明:
|
properties |
否 |
Map<String,String> |
程序系统参数。最多为2048字符,不能包含><|'`&!\特殊字符,可为空。 |
响应参数
状态码:200
参数 |
参数类型 |
描述 |
---|---|---|
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" }
状态码
状态码请参见状态码。
错误码
请参见错误码。