更新时间:2022-12-08 GMT+08:00

创建集群并执行作业

功能介绍

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

支持同一时间并发创建10个集群。

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

表1 获取资源

资源

获取途径

VPC

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

子网

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

密钥对

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

区域

区域和可用分区信息请向管理员获取。

服务版本信息

MRS目前支持MRS 2.1.1、MRS 3.0.5、MRS 3.1.0版本。

组件信息

  • 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.1支持的组件信息如下:
    • 分析集群包含的组件有:Presto,Hadoop,Spark,HBase,Hive,Hue,Loader,Tez,Flink
    • 流式集群包含的组件有:Kafka,Storm,Flume

URI

  • URI格式

    POST /v1.1/{project_id}/run-job-flow

  • 参数说明
    表2 参数说明

    名称

    是否必选

    说明

    project_id

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

请求消息

表3 请求参数说明

参数名

是否必选

参数类型

说明

billing_type

Integer

集群的计费模式。请设置为12。

data_center

String

集群区域信息,请向管理员获取区域和终端节点信息。

available_zone_id

String

可用分区ID,请向管理员获取区域和终端节点信息。

cluster_name

String

集群名称,不允许相同。

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

vpc

String

子网所在VPC名称。

通过VPC管理控制台获取名称:

  1. 登录管理控制台。
  2. 单击“虚拟私有云”,从左侧列表选择虚拟私有云。

在“虚拟私有云”页面的列表中即可获取VPC名称。

vpc_id

String

子网所在VPC ID。

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

  1. 登录管理控制台。
  2. 单击“虚拟私有云”,从左侧列表选择虚拟私有云。

在“虚拟私有云”页面的列表中即可获取VPC ID。

subnet_id

String

网络ID。

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

  1. 登录管理控制台。
  2. 单击“虚拟私有云”,从左侧列表选择虚拟私有云。

在“虚拟私有云”页面的列表中即可获取VPC网络ID。

subnet_name

String

子网名称。

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

  1. 登录管理控制台。
  2. 单击“虚拟私有云”,从左侧列表选择虚拟私有云。

在“虚拟私有云”页面的列表中即可获取VPC子网名称。

security_groups_id

String

集群安全组的ID。

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

enterprise_project_id

String

企业项目ID。

创建集群时,给集群绑定企业项目ID。

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

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

tags

Array

集群的标签信息。

  • 同一个集群最多能使用10个tag,tag的名称(key)不能重复
  • 标签的键/值不能包含“=”,“*”,“<”,“>”,“\”,“,”,“|”,“/”

cluster_version

String

集群版本。

取值范围:

  • MRS 2.1.1
  • MRS 3.0.5
  • MRS 3.1.0

cluster_type

Integer

集群类型。

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

默认值为0:分析集群。

说明:暂不支持通过接口方式创建混合集群。

safe_mode

Integer

MRS集群运行模式。

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

cluster_admin_secret

String

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

  • 密码长度应在8~32个字符之间
  • 必须包含如下4种中至少3种字符的组合
    • 至少一个小写字母
    • 至少一个大写字母
    • 至少一个数字
    • 至少一个特殊字符:`~!@#$%^&*()-_=+\|[{}];:'",<.>/?和空格
  • 不能与用户名或者倒序用户名相同

login_mode

Integer

集群登录方式。

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

默认设置为1。

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

cluster_master_secret

String

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

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

密码设置约束如下:

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

node_public_cert_name

String

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

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

node_public_cert_name字段。

log_collection

Integer

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

  • 0:不收集
  • 1:收集

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

node_groups

Array

节点列表信息。参数说明请参见表4

说明:

该参数和表5中的参数任选一组进行配置。

component_list

Array

服务组件安装列表信息。参数说明请参见表7

add_jobs

Array

创建集群时可同时提交作业,当前仅支持新增一个作业,作业参数请参见表8

bootstrap_scripts

Array

配置引导操作脚本信息。参数说明请参见表15

表4 node_groups参数说明

参数名

是否必选

参数类型

说明

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

节点节点数量,配置为0,取值范围0~500,Core与Task节点总数最大为500个。

node_size

String

节点的实例规格,例如:。

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

root_volume_size

String

节点系统磁盘存储大小。

root_volume_type

String

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

  • SATA:普通IO
  • SAS:高IO
  • SSD:超高I

data_volume_type

String

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

  • SATA:普通IO
  • SAS:高IO
  • SSD:超高IO

data_volume_count

Integer

节点数据磁盘存储数目

取值范围:0~10

data_volume_size

Integer

节点数据磁盘存储大小

取值范围:100GB~32000GB

auto_scaling_policy

AutoScalingPolicy

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

表5 节点配置参数

参数名

是否必选

参数类型

说明

master_node_num

Integer

Master节点数量。启用集群高可用功能时配置为2,不启用集群高可用功能时配置为1。

MRS 3.x版本暂时不支持该参数配置为1。

master_node_size

String

Master节点的实例规格,例如:c3.4xlarge.2.linux.bigdata。MRS当前支持主机规格的配型由CPU+内存+Disk共同决定。

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

core_node_num

Integer

Core节点数量。

取值范围:[1~500]

Core节点默认的最大值为500,如果用户需要的Core节点数大于500,请联系技术支持人员。

core_node_size

String

Core节点的实例规格,例如:c3.4xlarge.2.linux.bigdata。

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

master_data_volume_type

String

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

master_data_volume_size

Integer

该参数为多磁盘参数,表示Master节点数据磁盘存储空间。为增大数据存储容量,创建集群时可同时添加磁盘。

取值范围:100GB~32000GB

master_data_volume_count

Integer

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

取值只能是1

core_data_volume_type

String

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

core_data_volume_size

Integer

该参数为多磁盘参数,表示Core节点数据磁盘存储空间。为增大数据存储容量,创建集群时可同时添加磁盘。

取值范围:100GB~32000GB

core_data_volume_count

Integer

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

取值范围:1~10

volume_type

String

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

  • SATA:普通IO
  • SAS:高IO
  • SSD:超高IO

volume_size

Integer

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

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

取值范围:100GB~32000GB

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

task_node_groups

Array

Task节点列表信息。参数说明请参见表6

表6 task_node_groups参数说明

参数名

是否必选

参数类型

说明

node_num

Integer

Task节点节点数量,取值范围0~500,Core与Task节点总数最大为500个。

node_size

String

Task节点的实例规格,例如:。

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

data_volume_type

String

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

  • SATA:普通IO
  • SAS:高IO
  • SSD:超高IO

data_volume_count

Integer

Task节点数据磁盘存储数目

取值范围:0~10

data_volume_size

Integer

Task节点数据磁盘存储大小

取值范围:100GB~32000GB

auto_scaling_policy

AutoScalingPolicy

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

表7 component_list参数说明

参数名

是否必选

参数类型

说明

component_name

String

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

表8 add_jobs参数说明

参数名

是否必选

参数类型

说明

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只负责参数的传入。

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

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

Bool

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

  • true:是
  • false:否

file_action

String

数据导入导出。

  • import
  • export

submit_job_once_cluster_run

Bool

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

此处应设置为true。

hql

String

HQL脚本语句。

hive_script_path

String

sql程序路径,仅Spark Script和Hive Script作业需要使用此参数。需要满足如下要求:

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

参数名

是否必选

参数类型

说明

auto_scaling_enable

Boolean

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

min_capacity

Integer

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

取值范围:[0~500]

max_capacity

Integer

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

取值范围:[0~500]

resources_plans

List

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

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

exec_scripts

List

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

rules

List

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

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

表10 resources_plan参数说明

参数名

是否必选

参数类型

说明

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]

表11 exec_script参数说明

参数名

是否必选

参数类型

说明

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

List<String>

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

active_master

Boolean

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

缺省值为false,表示自定义自动化脚本可运行在所有Master节点上。

action_stage

String

脚本执行时机。

支持以下四个阶段:

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

fail_action

String

自定义自动化脚本执行失败后,是否继续执行后续脚本和创建集群。

  • continue:继续执行后续脚本。
  • errorout:终止操作。
    说明:
    • 建议您在调试阶段设置为“continue”,无论此自定义自动化脚本是否执行成功,则集群都能继续安装和启动。
    • 由于缩容成功无法回滚,因此缩容后执行的脚本“fail_action”必须设置为“continue”
表12 rules参数说明

参数名

是否必选

参数类型

说明

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

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

表13 trigger参数说明

参数名

是否必选

参数类型

说明

metric_name

String

指标名称。

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

最大长度为64个字符。

支持的指标名称请参考表14

metric_value

String

指标阈值。

触发该条件的指标阈值,只允许输入整数或者带两位小数的数,metric_name对应的指标数值类型和有效取值范围,请参考表14

comparison_operator

String

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

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

evaluation_periods

Integer

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

取值范围[1~288]

表14 弹性伸缩指标列表

集群类型

指标名称

数值类型

说明

流式集群

StormSlotAvailable

整型

Storm组件的可用slot数。

取值范围为[0~2147483646]。

StormSlotAvailablePercentage

百分比

Storm组件可用slot百分比。是可用slot数与总slot数的比值。

取值范围为[0~100]。

StormSlotUsed

整型

Storm组件的已用slot数。

取值范围为[0~2147483646]。

StormSlotUsedPercentage

百分比

Storm组件已用slot百分比。是已用slot数与总slot数的比值。

取值范围为[0~100]。

StormSupervisorMemAverageUsage

整形

Storm组件Supervisor的内存平均使用量。

取值范围为[0~2147483646]。

StormSupervisorMemAverageUsagePercentage

百分比

Storm组件Supervisor进程使用的内存占系统总内存的平均百分比。

取值范围[0 ~ 100]。

StormSupervisorCPUAverageUsagePercentage

百分比

Storm组件Supervisor进程使用的CPU占系统总CPU的平均百分比。

取值范围[0 ~ 6000]。

分析集群

YARNAppPending

整型

YARN组件挂起的任务数。

取值范围为[0~2147483646]。

YARNAppPendingRatio

比率

YARN组件挂起的任务数比例。是YARN挂起的任务数与YARN运行中的任务数比值。

取值范围为[0~2147483646]。

YARNAppRunning

整型

YARN组件运行中的任务数。

取值范围为[0~2147483646]。

YARNContainerAllocated

整型

YARN组件中已分配的container个数。

取值范围为[0~2147483646]。

YARNContainerPending

整型

YARN组件挂起的container个数。

取值范围为[0~2147483646]。

YARNContainerPendingRatio

比率

YARN组件挂起的container比率。是挂起的container数与运行中的container数的比值。

取值范围为[0~2147483646]。

YARNCPUAllocated

整型

YARN组件已分配的虚拟CPU核心数。

取值范围为[0~2147483646]。

YARNCPUAvailable

整型

YARN组件可用的虚拟CPU核心数。

取值范围为[0~2147483646]。

YARNCPUAvailablePercentage

百分比

YARN组件可用虚拟CPU核心数百分比。是可用虚拟CPU核心数与总虚拟CPU核心数比值。

取值范围为[0~100]。

YARNCPUPending

整型

YARN组件挂起的虚拟CPU核心数。

取值范围为[0~2147483646]。

YARNMemoryAllocated

整型

YARN组件已分配内存大小。单位为MB。

取值范围为[0~2147483646]。

YARNMemoryAvailable

整型

YARN组件可用内存大小。单位为MB。

取值范围为[0~2147483646]。

YARNMemoryAvailablePercentage

百分比

YARN组件可用内存百分比。是YARN组件可用内存大小与YARN组件总内存大小的比值。

取值范围为[0~100]。

YARNMemoryPending

整型

YARN组件挂起的内存大小。

取值范围为[0~2147483646]。

表14中指标数值类型为百分比或比率时,有效数值可精确到百分位。其中百分比类型指标数值为去除百分号(%)后的小数值,如16.80即代表16.80%。

表15 bootstrap_scripts参数说明

参数名

是否必选

参数类型

说明

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 String

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

active_master

Boolean

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

缺省值为false,表示引导操作脚本可运行在所有Master节点上。

before_component_start

Boolean

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

缺省值为false,表示引导操作脚本在组件启动后执行。

fail_action

String

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

  • continue:继续执行后续脚本。
  • errorout:终止操作。
缺省值为errorout,表示终止操作。
说明:

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

响应消息

表16 响应参数说明

参数名

参数类型

说明

cluster_id

String

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

result

Bool

操作结果。

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

msg

String

系统提示信息,可为空。

示例

  • 请求示例
    • 创建开启“集群高可用”功能的集群(使用node_groups参数组)
      {
      	"billing_type": 12,
      	"data_center": "my-kualalumpur-1",
      	"available_zone_id": ,
      	"cluster_name": "mrs_HEbK",
      	"cluster_version": "MRS 3.1.0",
      	"safe_mode": 0,
      	"cluster_type": 0,
      "component_list": [
              {             
                  "component_name": "Hadoop" 
              }, 
              {
                  "component_name": "Spark2x" 
              }, 
              {
                  "component_name": "HBase" 
              }, 
              {
                  "component_name": "Hive" 
              }, 
              {
                  "component_name": "Tez" 
              }, 
              {
                   "component_name": "Hue" 
              }, 
              {
                  "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_sction": "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/output/",
      		"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",
      		"fail_action": "continue"
      	}, {
      		"name": "Install zepplin",
      		"uri": "s3a://XXX/zeppelin_install.sh",
      		"parameters": "",
      		"nodes": ["master"],
      		"active_master": "true",
      		"before_component_start": "false",
      		"fail_action": "continue"
      	}]
      }
    • 创建开启“集群高可用”功能的集群(不使用node_groups参数组)
      {
          "billing_type": 12, 
          "data_center": "my-kualalumpur-1", 
          "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": , 
          "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.1.0",
          "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,
          "login_mode": 1,  
          "node_public_cert_name": "SSHkey-bba1", 
          "safe_mode": 0,
          "cluster_admin_secret":"******", 
          "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": 700,
               "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": "",
                     "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": "",
                     "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": "Spark2x" 
              }, 
              {
                  "component_name": "HBase" 
              }, 
              {
                  "component_name": "Hive" 
              }, 
              {
                  "component_name": "Presto" 
              }, 
              {
                  "component_name": "Tez" 
              }, 
              {
                   "component_name": "Hue" 
              },
              {
                  "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/output/", 
                  "job_log": "s3a://bigdata/log/", 
                  "shutdown_cluster": false, 
                  "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",
                   "fail_action":"continue"
               },
               {
                   "name":"Install zepplin",
                   "uri":"s3a://XXX/zeppelin_install.sh",
                   "parameters":"",
                   "nodes":[
                       "master"
                   ],
                   "active_master":"true",
                   "before_component_start":"false",
                   "fail_action":"continue"
               }
           ]
      }
    • 关闭“集群高可用”功能创建最小规格集群(使用node_groups参数组)
      {
      	"billing_type": 12,
      	"data_center": "my-kualalumpur-1",
      	"available_zone_id": ,
      	"cluster_name": "mrs_HEbK",
      	"cluster_version": "MRS 3.1.0",
      	"safe_mode": 0,
      	"cluster_type": 0,
      "component_list": [
              {             
                  "component_name": "Hadoop" 
              }, 
              {
                  "component_name": "Spark2x" 
              }, 
              {
                  "component_name": "HBase" 
              }, 
              {
                  "component_name": "Hive" 
              }, 
              {
                  "component_name": "Tez" 
              }, 
              {
                   "component_name": "Hue" 
              }, 
              {
                  "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/output/",
      		"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",
      		"fail_action": "continue"
      	}, {
      		"name": "Install zepplin",
      		"uri": "s3a://XXX/zeppelin_install.sh",
      		"parameters": "",
      		"nodes": ["master"],
      		"active_master": "true",
      		"before_component_start": "false",
      		"fail_action": "continue"
      	}]
      }
    • 关闭“集群高可用”功能创建最小规格集群(不使用node_groups参数组)
      {
          "billing_type": 12, 
          "data_center": "my-kualalumpur-1", 
          "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": , 
          "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.1.0",
          "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": "Tez" 
              }, 
              {
                  "component_name": "Hue"       
              }, 
              {
                  "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/output/", 
                  "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",
                   "fail_action":"continue"
               }
          ]
      }
  • 响应示例
    {
        "cluster_id": "da1592c2-bb7e-468d-9ac9-83246e95447a", 
        "result": true,
        "msg": ""
    }

状态码

状态码如表17所示。

表17 状态码

状态码

描述

200

创建集群成功。

异常状态码请参见状态码