更新时间:2024-12-10 GMT+08:00

创建集群并执行作业

功能介绍

创建一个MRS集群,并在集群中提交一个作业。该接口不兼容Sahara。

(建议优先使用创建集群V2接口创建集群并提交作业V2接口来完成创建集群或创建集群并提交作业的功能)

支持同一时间并发创建10个集群。可以通过设置enterprise_project_id字段,对资源进行细粒度授权。

使用接口前,您需要先获取如表1所示的资源信息。

表1 获取资源

资源

获取途径

VPC

请参见虚拟私有云《接口参考》查询VPC列表创建VPC的操作指导。

子网

请参见虚拟私有云《接口参考》查询子网列表创建子网的操作指导。

密钥对

请参见弹性云服务器《接口参考》查询SSH密钥列表创建和导入SSH密钥的操作指导。

区域

区域和可用分区信息,具体请参考终端节点

服务版本信息

MRS目前支持MRS 1.9.2、MRS 3.1.0、MRS 3.1.2-LTS.3、MRS 3.1.5、MRS 3.2.0-LTS.1。

组件信息

  • MRS 3.2.0-LTS.1支持的组件信息如下:
    • 分析集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Loader,Flink,Oozie,ZooKeeper,HetuEngine,Ranger,Tez,Guardian
    • 流式集群包含的组件有:Kafka,Flume,ZooKeeper,Ranger
    • 混合集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Loader,Flink,Oozie,ZooKeeper,HetuEngine,Ranger,Tez,Kafka,Flume,Guardian
    • 自定义集群包含的组件有:CDL,Hadoop,Spark2x,HBase,Hive,Hue,IoTDB,Loader,Kafka,Flume,Flink,Oozie,ZooKeeper,HetuEngine,Ranger,Tez,ClickHouse,Guardian
  • MRS 3.1.5支持的组件信息如下:
    • 分析集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Flink,Oozie,ZooKeeper,Ranger,Tez,Impala,Presto,kudu,Sqoop,Guardian
    • 流式集群包含的组件有:Kafka,Flume,ZooKeeper,Ranger
    • 混合集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Flink,Oozie,ZooKeeper,Ranger,Tez,Impala,Presto,kudu,Sqoop,Guardian,Kafka,Flume
    • 自定义集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Kafka,Flume,Flink,Oozie,ZooKeeper,Ranger,Tez,Impala,Presto,ClickHouse,kudu,Sqoop,Guardian
  • MRS 3.1.2-LTS.3支持的组件信息如下:
    • 分析集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Loader,Flink,Oozie,ZooKeeper,HetuEngine,Ranger,Tez
    • 流式集群包含的组件有:Kafka,Flume,ZooKeeper,Ranger
    • 混合集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Loader,Flink,Oozie,ZooKeeper,HetuEngine,Ranger,Tez,Kafka,Flume
    • 自定义集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Loader,Kafka,Flume,Flink,Oozie,ZooKeeper,HetuEngine,Ranger,Tez,ClickHouse
  • MRS 3.1.0支持的组件信息如下:
    • 分析集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Flink,Oozie,ZooKeeper,Ranger,Tez,Impala,Presto,Kudu
    • 流式集群包含的组件有:Kafka,Flume,ZooKeeper,Ranger
    • 混合集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Flink,Oozie,ZooKeeper,Ranger,Tez,Impala,Presto,Kudu,Kafka,Flume
    • 自定义集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Kafka,Flume,Flink,Oozie,ZooKeeper,Ranger,Tez,Impala,Presto,ClickHouse,Kudu
  • MRS 3.0.5支持的组件信息如下:
    • 分析集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Loader,Flink,Oozie,ZooKeeper,Ranger,Tez,Impala,Presto,Kudu,Alluxio
    • 流式集群包含的组件有:Kafka,Storm,Flume,ZooKeeper,Ranger
    • 混合集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Loader,Flink,Oozie,ZooKeeper,Ranger,Tez,Impala,Presto,Kudu,Alluxio,Kafka,Storm,Flume
    • 自定义集群包含的组件有:Hadoop,Spark2x,HBase,Hive,Hue,Loader,Kafka,Storm,Flume,Flink,Oozie,ZooKeeper,Ranger,Tez,Impala,Presto,ClickHouse,Kudu,Alluxio
  • MRS 2.1.0支持的组件信息如下:
    • 分析集群包含的组件有:Presto,Hadoop,Spark,HBase,Hive,Hue,Loader,Tez,Flink,Impala,Kudu
    • 流式集群包含的组件有:Kafka,Storm,Flume
  • MRS 1.9.2支持的组件信息如下:
    • 分析集群包含的组件有:Presto,Hadoop,Spark,HBase,Opentsdb,Hive,Hue,Loader,Tez,Flink,Alluxio,Ranger
    • 流式集群包含的组件有:Kafka,KafkaManager,Storm,Flume

接口约束

  • 集群登录方式有密码和密钥对两种,两者必选其一。
  • 使用密码方式需要配置访问集群节点的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中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

POST /v1.1/{project_id}/run-job-flow
表2 路径参数

名称

是否必选

参数类型

说明

project_id

String

参数解释:

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

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

请求参数

表3 请求参数说明

参数名

是否必选

参数类型

说明

cluster_version

String

参数解释:

集群版本。例如:MRS 3.1.0。

约束限制:

不涉及

取值范围

  • MRS 1.9.2
  • MRS 3.1.0
  • MRS 3.1.2-LTS.3
  • MRS 3.1.5
  • MRS 3.2.0-LTS.1

默认取值:

不涉及

cluster_name

String

参数解释:

集群名称,不允许相同。

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

master_node_num

Integer

参数解释:

Master节点数量。

约束限制:

启用集群高可用功能时配置为“2”,不启用集群高可用功能时配置为“1”。MRS 3.x版本暂时不支持该参数配置为“1”。

取值范围:

不涉及

默认取值:

不涉及

core_node_num

Integer

参数解释:

Core节点数量。Core节点默认的最大值为500,如果用户需要的Core节点数大于500,请申请扩大配额。

约束限制:

不涉及

取值范围:

1-500

默认取值:

不涉及

billing_type

Integer

参数解释:

集群的计费模式。

约束限制:

不涉及

取值范围:

12:表示按需计费。接口调用仅支持创建按需计费集群。

默认取值:

不涉及

data_center

String

参数解释:

集群区域信息,具体请参考终端节点

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

vpc

String

参数解释:

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

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

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

master_node_size

String

参数解释:

Master节点的实例规格,例如:{ECS_FLAVOR_NAME}.linux.bigdata,{ECS_FLAVOR_NAME}可以为c3.4xlare.2等在MRS购买页可见的云服务器规格。当前支持主机规格的配型由CPU+内存+Disk共同决定。实例规格详细说明请参见MRS所使用的弹性云服务器规格MRS所使用的裸金属服务器规格。 该参数建议从MRS控制台的集群创建页面获取对应区域对应版本所支持的规格。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

core_node_size

String

参数解释:

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

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

component_list

Array of component_list objects

参数解释:

服务组件安装列表信息。具体参数请参考表4

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

available_zone_id

String

参数解释:

可用分区ID,以下仅包含部分可用区ID,可通过查询可用区信息接口来获取各可用分区的ID。

约束限制:

不涉及

取值范围:

  • 中国-香港可用区1(ap-southeast-1a):8902e05a7ee04542a6a73246fddc46b0
  • 中国-香港可用区2(ap-southeast-1b):e9554f5c6fb84eeeb29ab766436b6454
  • 亚太-曼谷可用区1(ap-southeast-2a):11d18bfa9d57488b8f96680013667546
  • 亚太-曼谷可用区2(ap-southeast-2b):09d6a3cddbd643a5aa8837600c9af32c
  • 亚太-新加坡可用区1(ap-southeast-3a):82cc0d8877374316b669613539efd0d9
  • 亚太-新加坡可用区2(ap-southeast-3b):77394a8450e147779666771f796e9f03
  • 亚太-新加坡可用区3(ap-southeast-3c):dba8d1bd3d9146659e2b5a38c09b19a4

默认取值:

不涉及

vpc_id

String

参数解释:

子网所在VPC ID。

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

  1. 登录管理控制台。
  2. 单击“虚拟私有云”,从左侧列表选择虚拟私有云。
  3. 在“虚拟私有云”页面的列表中即可获取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_groups_id

String

参数解释:

集群安全组的ID。

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

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

add_jobs

Array of add_jobs objects

参数解释:

创建集群时可同时提交作业,当前版本暂时只支持新增一个作业。具体参数请参考表5

约束限制:

不能超过1条。

取值范围:

不涉及

默认取值:

不涉及

volume_size

Integer

参数解释:

Master和Core节点数据磁盘存储空间,单位为GB。为增大数据存储容量,创建集群时可同时添加磁盘。可以根据如下应用场景合理选择磁盘存储空间大小:

  • 数据存储和计算分离,数据存储在OBS系统中,集群费用相对较低,计算性能不高,并且集群随时可以删除,建议数据计算不频繁场景下使用。
  • 数据存储和计算不分离,数据存储在HDFS中,集群费用相对较高,计算性能高,集群需要长期存在,建议数据计算频繁场景下使用。

约束限制:

不建议使用该参数,详情请参考volume_type参数的说明。

取值范围:

100-32000

默认取值:

不涉及

volume_type

String

参数解释:

Master和Core节点的磁盘存储类别,目前支持SATA、SAS、SSD和GPSSD。磁盘参数可以使用volume_type和volume_size表示,也可以使用多磁盘相关的参数表示。volume_type和volume_size这两个参数如果与多磁盘参数同时出现,系统优先读取volume_type和volume_size参数。建议使用多磁盘参数。

约束限制:

不涉及

取值范围:

  • SATA:普通IO
  • SAS:高IO
  • SSD:超高IO
  • GPSSD:通用型SSD

默认取值:

不涉及

master_data_volume_type

String

参数解释:

该参数为多磁盘参数,表示Master节点数据磁盘存储类别,目前支持SATA、SAS、SSD和GPSSD。

约束限制:

不涉及

取值范围:

  • SATA:普通IO
  • SAS:高IO
  • SSD:超高IO
  • GPSSD:通用型SSD

默认取值:

不涉及

master_data_volume_size

Integer

参数解释:

该参数为多磁盘参数,表示Master节点数据磁盘存储空间。为增大数据存储容量,创建集群时可同时添加磁盘。传值只需填数字,不需要带单位GB。

约束限制:

不涉及

取值范围:

100-32000

默认取值:

不涉及

master_data_volume_count

Integer

参数解释:

该参数为多磁盘参数,表示Master节点数据磁盘个数。

约束限制:

不涉及

取值范围:

只能为1。

默认取值:

1

core_data_volume_type

String

参数解释:

该参数为多磁盘参数,表示Core节点数据磁盘存储类别,目前支持SATA、SAS、SSD和GPSSD。

约束限制:

不涉及

取值范围:

  • SATA:普通IO
  • SAS:高IO
  • SSD:超高IO
  • GPSSD:通用型SSD

默认取值:

不涉及

core_data_volume_size

Integer

参数解释:

该参数为多磁盘参数,表示Core节点数据磁盘存储空间。为增大数据存储容量,创建集群时可同时添加磁盘。传值只需填数字,不需要带单位GB。

约束限制:

不涉及

取值范围:

100-32000

默认取值:

不涉及

core_data_volume_count

Integer

参数解释:

该参数为多磁盘参数,表示Core节点数据磁盘个数。

约束限制:

不涉及

取值范围:

1-20

默认取值:

不涉及

task_node_groups

Array of task_node_groups objects

参数解释:

Task节点列表信息。具体参数请参考表6

约束限制:

不能超过1条。

取值范围:

不涉及

默认取值:

不涉及

bootstrap_scripts

Array of BootstrapScript objects

参数解释:

配置引导操作脚本信息。具体参数请参考表8

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

node_public_cert_name

String

参数解释:

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

约束限制:

当“login_mode”配置为“1”时,请求消息体中包含node_public_cert_name字段。

取值范围:

不涉及

默认取值:

不涉及

cluster_admin_secret

String

参数解释:

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

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

cluster_master_secret

String

参数解释:

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

约束限制:

当“login_mode”配置为“0”时,请求消息体中包含cluster_master_secret字段。

取值范围:

密码设置约束如下:

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

默认取值:

不涉及

safe_mode

Integer

参数解释:

MRS集群运行模式。

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

tags

Array of tag objects

参数解释:

集群的标签信息。具体参数请参考表9

约束限制:

同一个集群最多能使用20个tag,tag的名称(key)不能重复标签的键/值可以包含任意语种字母、数字、空格和_.:=+-@,但首尾不能含有空格,不能以_sys_开头。

取值范围:

不涉及

默认取值:

不涉及

cluster_type

Integer

参数解释:

集群类型。暂不支持通过接口方式创建混合集群。

约束限制:

不涉及

取值范围:

  • 0:分析集群
  • 1:流式集群

默认取值:

0

log_collection

Integer

参数解释:

集群创建失败时,是否收集失败日志。默认设置为1,将创建OBS桶仅用于MRS集群创建失败时的日志收集。

约束限制:

不涉及

取值范围:

  • 0:不收集
  • 1:收集

默认取值:

1

enterprise_project_id

String

参数解释:

企业项目ID。创建集群时,给集群绑定企业项目ID。默认设置为0,表示为default企业项目。

获取方式请参见《企业管理API参考》的“查询企业项目列表”响应消息表“enterprise_project字段数据结构说明”的“id”。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

0

login_mode

Integer

参数解释:

集群登录方式。

约束限制:

  • 当“login_mode”配置为“0”时,请求消息体中包含cluster_master_secret字段。
  • 当“login_mode”配置为“1”时,请求消息体中包含node_public_cert_name字段。

取值范围:

  • 0:密码方式
  • 1:密钥对方式

默认取值:

1

node_groups

Array of NodeGroupV11 objects

参数解释:

节点列表信息。具体参数请参考表10

约束限制:

如下参数和该参数任选一组进行配置即可。

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。

取值范围:

不涉及

默认取值:

不涉及

表4 ComponentAmbV11

参数名

是否必选

参数类型

说明

component_name

String

参数解释:

组件名称,请参考表1的组件信息。

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

表5 AddJobsReqV11

参数名

是否必选

参数类型

说明

job_type

Integer

参数解释:

作业类型码。

约束限制:

不涉及

取值范围:

  • 1:MapReduce
  • 2:Spark
  • 3:Hive Script
  • 4:HiveQL(当前不支持)
  • 5:DistCp,导入、导出数据,(当前不支持)。
  • 6:Spark Script
  • 7:Spark SQL,提交SQL语句,(当前不支持)。
    说明:

    只有包含Spark和Hive组件的集群才能新增Spark和Hive类型的作业。

默认取值:

不涉及

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加密的文件或程序。
  • HDFS:以“/”开头。

约束限制:

不涉及

取值范围:

最多为1023字符,不能包含;|&>'<$特殊字符,可为空。

默认取值:

不涉及

output

String

参数解释:

数据输出地址。

文件可存储于HDFS或者OBS中,不同的文件系统对应的路径存在差异。
  • OBS:以“s3a://”开头。
  • HDFS:以“/”开头。

如果该路径不存在,系统会自动创建。

约束限制:

不涉及

取值范围:

最多为1023字符,不能包含;|&>'<$特殊字符,可为空。

默认取值:

不涉及

job_log

String

参数解释:

作业日志存储地址,该日志信息记录作业运行状态。

文件可存储于HDFS或者OBS中,不同的文件系统对应的路径存在差异。
  • OBS:以“s3a://”开头。
  • HDFS:以“/”开头。

约束限制:

不涉及

取值范围:

最多为1023字符,不能包含;|&>'<$特殊字符,可为空。

默认取值:

不涉及

shutdown_cluster

Boolean

参数解释:

作业执行完成后,是否删除集群。

约束限制:

不涉及

取值范围:

  • true:作业执行完成后,删除集群。
  • false:作业执行完成后,不删除集群。

默认取值:

不涉及

file_action

String

参数解释:

数据导入导出。

约束限制:

不涉及

取值范围:

  • import:数据的导入操作。
  • export:数据的导出操作。

默认取值:

不涉及

submit_job_once_cluster_run

Boolean

参数解释:

创建集群时是否同时提交作业。此处应设置为“true”。

约束限制:

不涉及

取值范围:

  • true:创建集群同时提交作业
  • false:单独提交作业

默认取值:

不涉及

hql

String

参数解释:

HQL脚本语句。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

hive_script_path

String

参数解释:

SQL程序路径,仅Spark Script和Hive Script作业需要使用此参数。

约束限制:

不涉及

取值范围:

需要满足如下要求:

  • 最多为1023字符,不能包含;|&><'$特殊字符,且不可为空或全空格。
  • 文件可存储于HDFS或者OBS中,不同的文件系统对应的路径存在差异。
    • OBS:以“s3a://”开头。不支持KMS加密的文件或程序。
    • HDFS:以“/”开头。
  • 需要以“.sql”结尾,sql不区分大小写。

默认取值:

不涉及

表6 TaskNodeGroup

参数名

是否必选

参数类型

说明

node_num

Integer

参数解释:

Task节点数量。

约束限制:

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

取值范围:

0-500

默认取值:

不涉及

node_size

String

参数解释:

Task节点的实例规格,例如:{ECS_FLAVOR_NAME}.linux.bigdata,{ECS_FLAVOR_NAME}可以为c3.4xlare.2等在MRS购买页可见的云服务器规格。实例规格详细说明请参见MRS所使用的弹性云服务器规格MRS所使用的裸金属服务器规格

该参数建议从MRS控制台的集群创建页面获取对应区域对应版本所支持的规格。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

data_volume_type

String

参数解释:

Task节点数据磁盘存储类别,目前支持SATA、SAS和SSD等。

约束限制:

不涉及

取值范围:

  • SATA:普通IO
  • SAS:高IO
  • SSD:超高IO
  • GPSSD:通用型SSD

默认取值:

不涉及

data_volume_count

Integer

参数解释:

Task节点数据磁盘存储数目。

约束限制:

不涉及

取值范围:

0-20

默认取值:

不涉及

data_volume_size

Integer

参数解释:

Task节点数据磁盘存储大小。传值只需填数字,不需要带单位GB。

约束限制:

不涉及

取值范围:

100-32000

默认取值:

不涉及

auto_scaling_policy

auto_scaling_policy object

参数解释:

弹性伸缩规则信息。详细说明请参见表7

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表7 AutoScalingPolicy

参数名

是否必选

参数类型

说明

auto_scaling_enable

Boolean

参数解释:

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

约束限制:

不涉及

取值范围:

  • true:开启自动伸缩规则。
  • false:不开启自动伸缩规则。

默认取值:

不涉及

min_capacity

Integer

参数解释:

指定该节点组的最小保留节点数。

约束限制:

不涉及

取值范围:

0-500

默认取值:

不涉及

max_capacity

Integer

参数解释:

指定该节点组的最大节点数。

约束限制:

不涉及

取值范围:

0-500

默认取值:

不涉及

resources_plans

Array of resources_plan objects

参数解释:

资源计划列表,详细说明请参见表11。若该参数为空表示不启用资源计划。

约束限制:

当启用弹性伸缩时,资源计划与自动伸缩规则需至少配置其中一种。不能超过5条。

取值范围:

不涉及

默认取值:

不涉及

exec_scripts

Array of scale_script objects

参数解释:

弹性伸缩自定义自动化脚本列表。详细说明请参见表14。若该参数为空表示不启用钩子脚本。

约束限制:

不能超过10条。

取值范围:

不涉及

默认取值:

不涉及

rules

Array of rules objects

参数解释:

自动伸缩的规则列表,详细说明请参见表12

约束限制:

当启用弹性伸缩时,资源计划与自动伸缩规则需至少配置其中一种。不能超过10条。

取值范围:

不涉及

默认取值:

不涉及

表8 BootstrapScript

参数名

是否必选

参数类型

说明

name

String

参数解释:

引导操作脚本的名称。

约束限制:

不涉及

取值范围:

同一个集群的引导操作脚本名称不允许相同。不能以空格开头,只能由英文字母、数字以及“_”和“-”组成,且长度为[1-64]个字符。

默认取值:

不涉及

uri

String

参数解释:

引导操作脚本的路径。设置为OBS桶的路径或虚拟机本地的路径。

  • OBS桶的路径:直接手动输入脚本路径。例如输入MRS提供的公共样例脚本路径。示例:s3a://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

参数解释:

引导操作脚本所执行的节点类型,包含Master、Core和Task三种类型。

约束限制:

节点类型必须为小写字母。

取值范围:

不涉及

默认取值:

不涉及

active_master

Boolean

参数解释:

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

约束限制:

不涉及

取值范围:

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

默认取值:

false

before_component_start

Boolean

参数解释:

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

约束限制:

不涉及

取值范围:

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

默认取值:

false

fail_action

String

参数解释:

引导操作脚本执行失败后,是否继续执行后续脚本和创建集群。

建议您在调试阶段设置为“continue”,无论此引导操作是否执行成功,则集群都能继续安装和启动。

约束限制:

不涉及

取值范围:

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

默认取值:

errorout

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:扩容后

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表9 Tag

参数

是否必选

参数类型

描述

key

String

参数解释:

标签的键。

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

value

String

参数解释:

标签的值。

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

表10 NodeGroupV11

参数名

是否必选

参数类型

说明

group_name

String

参数解释:

节点组名。

约束限制:

不涉及

取值范围:

  • master_node_default_group
  • core_node_analysis_group
  • core_node_streaming_group
  • task_node_analysis_group
  • task_node_streaming_group

默认取值:

不涉及

node_num

Integer

参数解释:

节点数量。

约束限制:

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

取值范围:

0-500

默认取值:

不涉及

node_size

String

参数解释:

节点的实例规格,例如:{ECS_FLAVOR_NAME}.linux.bigdata,{ECS_FLAVOR_NAME}可以为c3.4xlare.2等在MRS购买页可见的云服务器规格。MRS当前支持主机规格的配型由CPU+内存+Disk共同决定。实例规格详细说明请参见MRS所使用的弹性云服务器规格MRS所使用的裸金属服务器规格。该参数建议从MRS控制台的集群创建页面获取对应区域对应版本所支持的规格。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

root_volume_size

String

参数解释:

节点系统磁盘存储大小。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

root_volume_type

String

参数解释:

节点系统磁盘存储类别,目前支持SATA、SAS和SSD等。

约束限制:

不涉及

取值范围:

  • SATA:普通IO
  • SAS:高IO
  • SSD:超高I
  • GPSSD:通用型SSD

默认取值:

不涉及

data_volume_type

String

参数解释:

节点数据磁盘存储类别,目前支持SATA、SAS和SSD等。

约束限制:

不涉及

取值范围:

  • SATA:普通IO
  • SAS:高IO
  • SSD:超高IO
  • GPSSD:通用型SSD

默认取值:

不涉及

data_volume_count

Integer

参数解释:

节点数据磁盘存储数目。

约束限制:

不涉及

取值范围:

0-20

默认取值:

不涉及

data_volume_size

Integer

参数解释:

节点数据磁盘存储大小。

单位为GB。

约束限制:

不涉及

取值范围:

100-32000

默认取值:

不涉及

auto_scaling_policy

auto_scaling_policy object

参数解释:

弹性伸缩规则信息。

约束限制:

当“group_name”配置为“task_node_analysis_group”或“task_node_streaming_group”时该参数有效,表示弹性伸缩规则信息。

具体参数请参考表7

取值范围:

不涉及

默认取值:

不涉及

表11 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

默认取值:

不涉及

表12 Rule

参数名

是否必选

参数类型

说明

name

String

参数解释:

弹性伸缩规则的名称。

约束限制:

不涉及

取值范围:

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

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

默认取值:

不涉及

description

String

参数解释:

弹性伸缩规则的说明。

约束限制:

不涉及

取值范围:

最大长度为1024字符。

默认取值:

不涉及

adjustment_type

String

参数解释:

弹性伸缩规则的调整类型,只允许以下类型:

约束限制:

不涉及

取值范围:

  • scale_out:扩容
  • scale_in:缩容

默认取值:

不涉及

cool_down_minutes

Integer

参数解释:

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

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

scaling_adjustment

Integer

参数解释:

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

约束限制:

不涉及

取值范围:

1-100

默认取值:

不涉及

trigger

trigger object

参数解释:

描述该规则触发条件,详细说明请参见表13

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表13 Trigger

参数名

是否必选

参数类型

说明

metric_name

String

参数解释:

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

详细指标名称内容请参见配置MRS集群弹性伸缩

约束限制:

不涉及

取值范围:

最大长度为64个字符。

默认取值:

不涉及

metric_value

String

参数解释:

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

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

comparison_operator

String

参数解释:

指标判断逻辑运算符,包括:

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

evaluation_periods

Integer

参数解释:

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

约束限制:

不涉及

取值范围:

1-200

默认取值:

不涉及

表14 ScaleScript

参数名

是否必选

参数类型

说明

name

String

参数解释:

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

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

uri

String

参数解释:

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

  • OBS桶的路径:直接手动输入脚本路径。示例:s3a://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 string

参数解释:

自定义自动化脚本所执行的节点类型,包含Master、Core和Task三种类型。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

active_master

Boolean

参数解释:

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

约束限制:

不涉及

取值范围:

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

默认取值:

false

action_stage

String

参数解释:

脚本执行时机。

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

fail_action

String

参数解释:

自定义自动化脚本执行失败后,是否继续执行后续脚本和创建集群。建议您在调试阶段设置为“continue”,无论此自定义自动化脚本是否执行成功,则集群都能继续安装和启动。由于缩容成功无法回滚,因此缩容后执行的脚本“fail_action”必须设置为“continue”。

约束限制:

不涉及

取值范围:

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

默认取值:

不涉及

响应参数

状态码:200

表15 响应Body参数

参数名

参数类型

说明

cluster_id

String

参数解释:

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

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

result

Boolean

参数解释:

操作结果。

约束限制:

不涉及

取值范围:

  • true:操作成功
  • false:操作失败

默认取值:

不涉及

msg

String

参数解释:

系统提示信息,可为空。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

请求示例

  • 使用node_groups参数组,创建一个启用“集群高可用”功能的集群,集群版本号为MRS 3.2.0-LTS.1
    POST https://{endpoint}/v1.1/{project_id}/run-job-flow
    
    {
      "billing_type" : 12,
      "data_center" : "",
      "available_zone_id" : "0e7a368b6c54493e94ad32666b47e23e",
      "cluster_name" : "mrs_HEbK",
      "cluster_version" : "MRS 3.2.0-LTS.1",
      "safe_mode" : 0,
      "cluster_type" : 0,
      "component_list" : [ {
        "component_name" : "Hadoop"
      }, {
        "component_name" : "Spark2x"
      }, {
        "component_name" : "HBase"
      }, {
        "component_name" : "Hive"
      }, {
        "component_name" : "Zookeeper"
      }, {
        "component_name" : "Tez"
      }, {
        "component_name" : "Hue"
      }, {
        "component_name" : "Loader"
      }, {
        "component_name" : "Flink"
      } ],
      "vpc" : "vpc-4b1c",
      "vpc_id" : "4a365717-67be-4f33-80c5-98e98a813af8",
      "subnet_id" : "67984709-e15e-4e86-9886-d76712d4e00a",
      "subnet_name" : "subnet-4b44",
      "security_groups_id" : "4820eace-66ad-4f2c-8d46-cf340e3029dd",
      "enterprise_project_id" : "0",
      "tags" : [ {
        "key" : "key1",
        "value" : "value1"
      }, {
        "key" : "key2",
        "value" : "value2"
      } ],
      "node_groups" : [ {
        "group_name" : "master_node_default_group",
        "node_num" : 2,
        "node_size" : "s3.xlarge.2.linux.bigdata",
        "root_volume_size" : 480,
        "root_volume_type" : "SATA",
        "data_volume_type" : "SATA",
        "data_volume_count" : 1,
        "data_volume_size" : 600
      }, {
        "group_name" : "core_node_analysis_group",
        "node_num" : 3,
        "node_size" : "s3.xlarge.2.linux.bigdata",
        "root_volume_size" : 480,
        "root_volume_type" : "SATA",
        "data_volume_type" : "SATA",
        "data_volume_count" : 1,
        "data_volume_size" : 600
      }, {
        "group_name" : "task_node_analysis_group",
        "node_num" : 2,
        "node_size" : "s3.xlarge.2.linux.bigdata",
        "root_volume_size" : 480,
        "root_volume_type" : "SATA",
        "data_volume_type" : "SATA",
        "data_volume_count" : 0,
        "data_volume_size" : 600,
        "auto_scaling_policy" : {
          "auto_scaling_enable" : true,
          "min_capacity" : 1,
          "max_capacity" : "3",
          "resources_plans" : [ {
            "period_type" : "daily",
            "start_time" : "9:50",
            "end_time" : "10:20",
            "min_capacity" : 2,
            "max_capacity" : 3
          }, {
            "period_type" : "daily",
            "start_time" : "10:20",
            "end_time" : "12:30",
            "min_capacity" : 0,
            "max_capacity" : 2
          } ],
          "exec_scripts" : [ {
            "name" : "before_scale_out",
            "uri" : "s3a://XXX/zeppelin_install.sh",
            "parameters" : "${mrs_scale_node_num} ${mrs_scale_type} xxx",
            "nodes" : [ "master", "core", "task" ],
            "active_master" : "true",
            "action_stage" : "before_scale_out",
            "fail_action" : "continue"
          }, {
            "name" : "after_scale_out",
            "uri" : "s3a://XXX/storm_rebalance.sh",
            "parameters" : "${mrs_scale_node_hostnames} ${mrs_scale_node_ips}",
            "nodes" : [ "master", "core", "task" ],
            "active_master" : "true",
            "action_stage" : "after_scale_out",
            "fail_action" : "continue"
          } ],
          "rules" : [ {
            "name" : "default-expand-1",
            "adjustment_type" : "scale_out",
            "cool_down_minutes" : 5,
            "scaling_adjustment" : 1,
            "trigger" : {
              "metric_name" : "YARNMemoryAvailablePercentage",
              "metric_value" : "25",
              "comparison_operator" : "LT",
              "evaluation_periods" : 10
            }
          }, {
            "name" : "default-shrink-1",
            "adjustment_type" : "scale_in",
            "cool_down_minutes" : 5,
            "scaling_adjustment" : 1,
            "trigger" : {
              "metric_name" : "YARNMemoryAvailablePercentage",
              "metric_value" : "70",
              "comparison_operator" : "GT",
              "evaluation_periods" : 10
            }
          } ]
        }
      } ],
      "login_mode" : 1,
      "cluster_master_secret" : "",
      "cluster_admin_secret" : "",
      "log_collection" : 1,
      "add_jobs" : [ {
        "job_type" : 1,
        "job_name" : "tenji111",
        "jar_path" : "s3a://bigdata/program/hadoop-mapreduce-examples-2.7.2.jar",
        "arguments" : "wordcount",
        "input" : "s3a://bigdata/input/wd_1k/",
        "output" : "s3a://bigdata/ouput/",
        "job_log" : "s3a://bigdata/log/",
        "shutdown_cluster" : true,
        "file_action" : "",
        "submit_job_once_cluster_run" : true,
        "hql" : "",
        "hive_script_path" : ""
      } ],
      "bootstrap_scripts" : [ {
        "name" : "Modify os config",
        "uri" : "s3a://XXX/modify_os_config.sh",
        "parameters" : "param1 param2",
        "nodes" : [ "master", "core", "task" ],
        "active_master" : "false",
        "before_component_start" : "true",
        "start_time" : "1667892101",
        "state" : "IN_PROGRESS",
        "fail_action" : "continue",
        "action_stages" : [ "BEFORE_COMPONENT_FIRST_START", "BEFORE_SCALE_IN" ]
      }, {
        "name" : "Install zepplin",
        "uri" : "s3a://XXX/zeppelin_install.sh",
        "parameters" : "",
        "nodes" : [ "master" ],
        "active_master" : "true",
        "before_component_start" : "false",
        "start_time" : "1667892101",
        "state" : "IN_PROGRESS",
        "fail_action" : "continue",
        "action_stages" : [ "AFTER_SCALE_IN", "AFTER_SCALE_OUT" ]
      } ]
    }
  • 不使用node_groups参数组,创建一个启用“集群高可用”功能的集群,集群版本号为MRS 3.2.0-LTS.1
    POST https://{endpoint}/v1.1/{project_id}/run-job-flow
    
    {
      "billing_type" : 12,
      "data_center" : "",
      "master_node_num" : 2,
      "master_node_size" : "s3.2xlarge.2.linux.bigdata",
      "core_node_num" : 3,
      "core_node_size" : "s3.2xlarge.2.linux.bigdata",
      "available_zone_id" : "0e7a368b6c54493e94ad32666b47e23e", 
      "cluster_name" : "newcluster",
      "vpc" : "vpc1",
      "vpc_id" : "5b7db34d-3534-4a6e-ac94-023cd36aaf74",
      "subnet_id" : "815bece0-fd22-4b65-8a6e-15788c99ee43",
      "subnet_name" : "subnet",
      "security_groups_id" : "845bece1-fd22-4b45-7a6e-14338c99ee43",
      "tags" : [ {
        "key" : "key1",
        "value" : "value1"
      }, {
        "key" : "key2",
        "value" : "value2"
      } ],
      "cluster_version" : "MRS 3.2.0-LTS.1",
      "cluster_type" : 0,
      "master_data_volume_type" : "SATA",
      "master_data_volume_size" : 600,
      "master_data_volume_count" : 1,
      "core_data_volume_type" : "SATA",
      "core_data_volume_size" : 600,
      "core_data_volume_count" : 2,
      "node_public_cert_name" : "SSHkey-bba1",
      "safe_mode" : 0,
      "log_collection" : 1,
      "task_node_groups" : [ {
        "node_num" : 2,
        "node_size" : "s3.xlarge.2.linux.bigdata",
        "data_volume_type" : "SATA",
        "data_volume_count" : 1,
        "data_volume_size" : 600,
        "auto_scaling_policy" : {
          "auto_scaling_enable" : true,
          "min_capacity" : 1,
          "max_capacity" : "3",
          "resources_plans" : [ {
            "period_type" : "daily",
            "start_time" : "9: 50",
            "end_time" : "10: 20",
            "min_capacity" : 2,
            "max_capacity" : 3
          }, {
            "period_type" : "daily",
            "start_time" : "10: 20",
            "end_time" : "12: 30",
            "min_capacity" : 0,
            "max_capacity" : 2
          } ],
          "exec_scripts" : [ {
            "name" : "before_scale_out",
            "uri" : "s3a: //XXX/zeppelin_install.sh",
            "parameters" : "${mrs_scale_node_num}${mrs_scale_type}xxx",
            "nodes" : [ "master", "core", "task" ],
            "active_master" : "true",
            "action_stage" : "before_scale_out",
            "fail_action" : "continue"
          }, {
            "name" : "after_scale_out",
            "uri" : "s3a: //XXX/storm_rebalance.sh",
            "parameters" : "${mrs_scale_node_hostnames}${mrs_scale_node_ips}",
            "nodes" : [ "master", "core", "task" ],
            "active_master" : "true",
            "action_stage" : "after_scale_out",
            "fail_action" : "continue"
          } ],
          "rules" : [ {
            "name" : "default-expand-1",
            "adjustment_type" : "scale_out",
            "cool_down_minutes" : 5,
            "scaling_adjustment" : 1,
            "trigger" : {
              "metric_name" : "YARNMemoryAvailablePercentage",
              "metric_value" : "25",
              "comparison_operator" : "LT",
              "evaluation_periods" : 10
            }
          }, {
            "name" : "default-shrink-1",
            "adjustment_type" : "scale_in",
            "cool_down_minutes" : 5,
            "scaling_adjustment" : 1,
            "trigger" : {
              "metric_name" : "YARNMemoryAvailablePercentage",
              "metric_value" : "70",
              "comparison_operator" : "GT",
              "evaluation_periods" : 10
            }
          } ]
        }
      } ],
      "component_list" : [ {
        "component_name" : "Hadoop"
      }, {
        "component_name" : "Spark"
      }, {
        "component_name" : "HBase"
      }, {
        "component_name" : "Hive"
      } ],
      "add_jobs" : [ {
        "job_type" : 1,
        "job_name" : "tenji111",
        "jar_path" : "s3a: //bigdata/program/hadoop-mapreduce-examples-2.7.2.jar",
        "arguments" : "wordcount",
        "input" : "s3a: //bigdata/input/wd_1k/",
        "output" : "s3a: //bigdata/ouput/",
        "job_log" : "s3a: //bigdata/log/",
        "shutdown_cluster" : true,
        "file_action" : "",
        "submit_job_once_cluster_run" : true,
        "hql" : "",
        "hive_script_path" : ""
      } ],
      "bootstrap_scripts" : [ {
        "name" : "Modifyosconfig",
        "uri" : "s3a: //XXX/modify_os_config.sh",
        "parameters" : "param1param2",
        "nodes" : [ "master", "core", "task" ],
        "active_master" : "false",
        "before_component_start" : "true",
        "start_time" : "1667892101",
        "state" : "IN_PROGRESS",
        "fail_action" : "continue",
        "action_stages" : [ "BEFORE_COMPONENT_FIRST_START", "BEFORE_SCALE_IN" ]
      }, {
        "name" : "Installzepplin",
        "uri" : "s3a: //XXX/zeppelin_install.sh",
        "parameters" : "",
        "nodes" : [ "master" ],
        "active_master" : "true",
        "before_component_start" : "false",
        "start_time" : "1667892101",
        "state" : "IN_PROGRESS",
        "fail_action" : "continue",
        "action_stages" : [ "AFTER_SCALE_IN", "AFTER_SCALE_OUT" ]
      } ]
    }
  • 使用node_groups参数组,创建一个关闭“集群高可用”功能、最小规格的集群,集群版本号为MRS 3.2.0-LTS.1
    POST https://{endpoint}/v1.1/{project_id}/run-job-flow
    
    {
      "billing_type" : 12,
      "data_center" : "",
      "available_zone_id" : "0e7a368b6c54493e94ad32666b47e23e",
      "cluster_name" : "mrs_HEbK",
      "cluster_version" : "MRS 3.2.0-LTS.1",
      "safe_mode" : 0,
      "cluster_type" : 0,
      "component_list" : [ {
        "component_name" : "Hadoop"
      }, {
        "component_name" : "Spark2x"
      }, {
        "component_name" : "HBase"
      }, {
        "component_name" : "Hive"
      }, {
        "component_name" : "Zookeeper"
      }, {
        "component_name" : "Tez"
      }, {
        "component_name" : "Hue"
      }, {
        "component_name" : "Loader"
      }, {
        "component_name" : "Flink"
      } ],
      "vpc" : "vpc-4b1c",
      "vpc_id" : "4a365717-67be-4f33-80c5-98e98a813af8",
      "subnet_id" : "67984709-e15e-4e86-9886-d76712d4e00a",
      "subnet_name" : "subnet-4b44",
      "security_groups_id" : "4820eace-66ad-4f2c-8d46-cf340e3029dd",
      "enterprise_project_id" : "0",
      "tags" : [ {
        "key" : "key1",
        "value" : "value1"
      }, {
        "key" : "key2",
        "value" : "value2"
      } ],
      "node_groups" : [ {
        "group_name" : "master_node_default_group",
        "node_num" : 1,
        "node_size" : "s3.xlarge.2.linux.bigdata",
        "root_volume_size" : 480,
        "root_volume_type" : "SATA",
        "data_volume_type" : "SATA",
        "data_volume_count" : 1,
        "data_volume_size" : 600
      }, {
        "group_name" : "core_node_analysis_group",
        "node_num" : 1,
        "node_size" : "s3.xlarge.2.linux.bigdata",
        "root_volume_size" : 480,
        "root_volume_type" : "SATA",
        "data_volume_type" : "SATA",
        "data_volume_count" : 1,
        "data_volume_size" : 600
      } ],
      "login_mode" : 1,
      "cluster_master_secret" : "",
      "cluster_admin_secret" : "",
      "log_collection" : 1,
      "add_jobs" : [ {
        "job_type" : 1,
        "job_name" : "tenji111",
        "jar_path" : "s3a://bigdata/program/hadoop-mapreduce-examples-2.7.2.jar",
        "arguments" : "wordcount",
        "input" : "s3a://bigdata/input/wd_1k/",
        "output" : "s3a://bigdata/ouput/",
        "job_log" : "s3a://bigdata/log/",
        "shutdown_cluster" : true,
        "file_action" : "",
        "submit_job_once_cluster_run" : true,
        "hql" : "",
        "hive_script_path" : ""
      } ],
      "bootstrap_scripts" : [ {
        "name" : "Modify os config",
        "uri" : "s3a://XXX/modify_os_config.sh",
        "parameters" : "param1 param2",
        "nodes" : [ "master", "core", "task" ],
        "active_master" : "false",
        "before_component_start" : "true",
        "start_time" : "1667892101",
        "state" : "IN_PROGRESS",
        "fail_action" : "continue",
        "action_stages" : [ "BEFORE_COMPONENT_FIRST_START", "BEFORE_SCALE_IN" ]
      }, {
        "name" : "Install zepplin",
        "uri" : "s3a://XXX/zeppelin_install.sh",
        "parameters" : "",
        "nodes" : [ "master" ],
        "active_master" : "true",
        "before_component_start" : "false",
        "start_time" : "1667892101",
        "state" : "IN_PROGRESS",
        "fail_action" : "continue",
        "action_stages" : [ "AFTER_SCALE_IN", "AFTER_SCALE_OUT" ]
      } ]
    }
  • 不使用node_groups参数组,创建一个关闭“集群高可用”功能、最小规格的集群,集群版本号为MRS 3.2.0-LTS.1
    POST https://{endpoint}/v1.1/{project_id}/run-job-flow
    
    {
      "billing_type" : 12,
      "data_center" : "",
      "master_node_num" : 1,
      "master_node_size" : "s3.2xlarge.2.linux.bigdata",
      "core_node_num" : 1,
      "core_node_size" : "s3.2xlarge.2.linux.bigdata", 
      "available_zone_id" : "0e7a368b6c54493e94ad32666b47e23e", 
      "cluster_name" : "newcluster",
      "vpc" : "vpc1",
      "vpc_id" : "5b7db34d-3534-4a6e-ac94-023cd36aaf74",
      "subnet_id" : "815bece0-fd22-4b65-8a6e-15788c99ee43",
      "subnet_name" : "subnet",
      "security_groups_id" : "",
      "enterprise_project_id" : "0",
      "tags" : [ {
        "key" : "key1",
        "value" : "value1"
      }, {
        "key" : "key2",
        "value" : "value2"
      } ],
      "cluster_version" : "MRS 3.2.0-LTS.1",
      "cluster_type" : 0,
      "master_data_volume_type" : "SATA",
      "master_data_volume_size" : 600,
      "master_data_volume_count" : 1,
      "core_data_volume_type" : "SATA",
      "core_data_volume_size" : 600,
      "core_data_volume_count" : 1,
      "login_mode" : 1,
      "node_public_cert_name" : "SSHkey-bba1",
      "safe_mode" : 0,
      "cluster_admin_secret" : "******",
      "log_collection" : 1,
      "component_list" : [ {
        "component_name" : "Hadoop"
      }, {
        "component_name" : "Spark2x"
      }, {
        "component_name" : "HBase"
      }, {
        "component_name" : "Hive"
      }, {
        "component_name" : "Zookeeper"
      }, {
        "component_name" : "Tez"
      }, {
        "component_name" : "Hue"
      }, {
        "component_name" : "Loader"
      }, {
        "component_name" : "Flink"
      } ],
      "add_jobs" : [ {
        "job_type" : 1,
        "job_name" : "tenji111",
        "jar_path" : "s3a://bigdata/program/hadoop-mapreduce-examples-XXX.jar",
        "arguments" : "wordcount",
        "input" : "s3a://bigdata/input/wd_1k/",
        "output" : "s3a://bigdata/ouput/",
        "job_log" : "s3a://bigdata/log/",
        "shutdown_cluster" : false,
        "file_action" : "",
        "submit_job_once_cluster_run" : true,
        "hql" : "",
        "hive_script_path" : ""
      } ],
      "bootstrap_scripts" : [ {
        "name" : "Install zepplin",
        "uri" : "s3a://XXX/zeppelin_install.sh",
        "parameters" : "",
        "nodes" : [ "master" ],
        "active_master" : "false",
        "before_component_start" : "false",
        "start_time" : "1667892101",
        "state" : "IN_PROGRESS",
        "fail_action" : "continue",
        "action_stages" : [ "AFTER_SCALE_IN", "AFTER_SCALE_OUT" ]
      } ]
    }

响应示例

状态码:200

创建集群成功。

{
  "cluster_id" : "da1592c2-bb7e-468d-9ac9-83246e95447a",
  "result" : true,
  "msg" : ""
}

状态码

状态码如表16所示。

表16 状态码

状态码

描述

200

创建集群成功。

异常状态码请参见状态码

错误码

请参见错误码