接口功能介绍
创建集群(包周期,即包年/包月)。
接口约束
参数校验必须通过。
注意
云搜索和数据分析类型集群不支持task节点组。
云搜索类型集群的core类型节点组机器数量为1-15,且可以没有core节点组。
非云搜索类型的集群,都需要存在master和core-1节点组,且core-1节点组机器数量为3-15。
自定义类型集群需参考组件依赖关系。
components组件信息如下:
- data-lake数据湖
必选组件:OpenLDAP(2.4.50)、Kerberos(1.18.2)、ZooKeeper(3.7.1)、HDFS(3.3.3)、YARN(3.3.3)、Hive(3.1.2)、Tez(0.10.1)、Spark(3.4.1)、Hudi(0.14.0)、Iceberg(1.4.3)
可选组件:HBase(2.4.12)、Trino(406)、Kyuubi(1.8.2)、Doris(2.1.5)、Ranger(2.2.0)、Kafka(2.8.1)、KafkaUI(1.0.0)、Knox(1.6.1)、Flink(1.16.2)、JeekeFS(1.1.1)、Flume(1.10.0)、SeaTunnel(2.3.7)、Pushgateway(1.6.2)
- data-analysis数据分析
必选组件:Doris(2.1.5)
- data-service数据服务
必选组件:OpenLDAP(2.4.50)、Kerberos(1.18.2)、ZooKeeper(3.7.1)、HDFS(3.3.3)、YARN(3.3.3)、HBase(2.4.12)
可选组件:Ranger(2.2.0)、Knox(1.6.1)、JeekeFS(1.1.1)
- cloud-search云搜索
必选组件:Elasticsearch(7.10.2)、Kibana(7.10.2)
可选组件:Logstash(7.10.2)
- real-time-data-processing实时数据流
必选组件:HDFS(3.3.3)、YARN(3.3.3)、Flink(1.16.2)、ZooKeeper(3.7.1)、Kerberos(1.18.2)、OpenLDAP(2.4.50)、Hudi(0.14.0)、Iceberg(1.4.3)、SeaTunnel(2.3.7)
可选组件:Kafka(2.8.1)、KafkaUI(1.0.0)、Knox(1.6.1)、JeekeFS(1.1.1)、Pushgateway(1.6.2)
- customize自定义
可选组件:OpenLDAP(2.4.50)、Kerberos(1.18.2)、ZooKeeper(3.7.1)、HDFS(3.3.3)、YARN(3.3.3)、Hive(3.1.2)、Spark(3.4.1)、Hudi(0.14.0)、Iceberg(1.4.3)、HBase(2.4.12)、Trino(406)、Kyuubi(1.8.2)、Doris(2.1.5)、Ranger(2.2.0)、Kafka(2.8.1)、KafkaUI(1.0.0)、Knox(1.6.1)、Flink(1.16.2)、JeekeFS(1.1.1)、Flume(1.10.0)、Tez(0.10.1)、SeaTunnel(2.3.7)、Pushgateway(1.6.2)
自定义集群组件依赖关系如下:
Flink 依赖(全部)HDFS、Hudi、Iceberg、Kerberos、OpenLDAP、SeaTunnel、YARN、ZooKeeper
HBase 依赖(全部)HDFS、Kerberos、OpenLDAP、ZooKeeper
HDFS 依赖(全部)Kerberos、OpenLDAP、ZooKeeper
Hive 依赖(全部)HDFS、Hudi、Iceberg、Kerberos、OpenLDAP、Tez、YARN、ZooKeeper
Hudi 依赖(任意)Flink、Hive、Spark
Iceberg 依赖(任意)Flink、Hive、Spark
JeekeFS 依赖(全部)Kerberos
Kafka 依赖(全部)Kerberos、ZooKeeper
KafkaUI 依赖(全部)Kafka、Kerberos、OpenLDAP
Kerberos 依赖(全部)OpenLDAP
Knox 依赖(全部)Kerberos、OpenLDAP
Kyuubi 依赖(全部)HDFS、Hive、Kerberos、OpenLDAP、Spark、YARN、ZooKeeper
Ranger 依赖(全部)HDFS、Kerberos、OpenLDAP、ZooKeeper
Spark 依赖(全部)HDFS、Hive、Hudi、Iceberg、Kerberos、OpenLDAP、YARN、ZooKeeper
Trino 依赖(全部)Kerberos、OpenLDAP
YARN 依赖(全部)HDFS、Kerberos、OpenLDAP、ZooKeeper
ZooKeeper 依赖(全部)Kerberos、OpenLDAP
接口是否审批
否
URI
POST /v2/emr/openapi/order/new
Content-Type
application/json
路径参数
无
Query参数
无
请求头header参数
无
请求体body参数
请求体body参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
cluster_name | 是 | String | 集群名称:大写字母、小写字母、数字和特殊符号组成,最大支持28个字符 | sjfw-test-1 | |
cluster_type | 是 | String | 集群类型: data-lake:数据湖 data-analysis:数据分析 data-service:数据服务 cloud-search:云搜索 real-time-data-processing:实时数据流 customize:自定义 |
data-lake | |
components | 是 | String | 组件信息:多个组件“,”隔开 | OpenLDAP,Kerberos,ZooKeeper,HDFS,YARN,Hive,Tez,Spark,Hudi,Iceberg,Ranger | |
region_id | 是 | String | 资源池ID | bb9fdb42056f11eda1610242ac110002 | |
available_zone_id | 是 | String | 可用区ID | cn-huadong1-jsnj3A-public-ctcloud | |
vpc_Id | 是 | String | VPC ID | vpc-n83zi9vuo0 | |
subnet_id | 是 | String | 子网ID | subnet-8hzbyype9r | |
security_groups_id | 是 | String | 安全组ID | sg-zfh4pgydhe | |
enable_ipv6 | 否 | Boolean | 开启IPv6: true:开启 false:关闭 VPC支持IPv6时默认true |
false | |
node_root_password | 是 | String | 节点的root密码:长度为12-26字符,需包含大写字母、小写字母、数字和特殊符号(仅包括:~!@#$%^*_-+{[]}:,.?),不能包含root、toor相关大小写变形字符串和3位及以上连续数字或字符 | Juhwqe7h!21Da. | |
charge_info | 是 | Object | 计费信息 | 表charge_info | |
datasource_configs | 否 | Array of Objects | 关联数据连接信息:部署Hive和Ranger等组件时,可以关联数据连接,将元数据存储于关联的数据库 | 表datasource_config | |
node_details | 是 | Array of Objects | 节点组详情 | 表node_detail |
表 charge_info
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
charge_mode | 是 | String | 计费模式: prePaid:包周期,即包年/包月 |
prePaid | |
period_type | 是 | String | 周期类型: month:包月 year: 包年 |
month | |
period_num | 是 | Integer | 周期数: 当“period_type”为“month”时,取值为1-11 当“period_type”为“year”时,取值为1-5 |
1 | |
is_auto_renew | 否 | Boolean | 是否自动续费: true:是 false:否 默认false |
false |
表 datasource_config
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
type | 是 | String | 组件类型:Hive、Ranger | Hive | |
properties | 是 | Array of Objects | 配置信息 | 表property |
表 property
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
name | 是 | String | 名称:DB_Host、DB_Port、DB_Name、DB_User、DB_Password | ||
value | 是 | String | 值 |
表 node_detail
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
group_name | 是 | String | 节点组名称:master,core1-11,task1-10,节点组总数不超过12 | master | |
node_num | 是 | Integer | 节点数量:master节点组固定3,core和task节点组1-15(非云搜索类型的集群core-1节点数量最小为3) | 3 | |
node_size | 是 | String | 实例规格 | s7.2xlarge.4 | |
affinity_group | 是 | Boolean | 反亲和性云主机组: true:反亲和 false:亲和 默认true |
true | |
disk_specifications | 是 | Array of Objects | 磁盘规格 | 表disk_specification |
表 disk_specification
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
disk_function | 是 | String | 磁盘分类: SYSTEM:系统盘 DATA:数据盘 |
SYSTEM | |
disk_type | 是 | String | 磁盘类型: cloud:云盘 |
cloud | |
io_type | 是 | String | 磁盘IO类型: SATA:普通IO SAS:高IO SSD:超高IO SSD-genric:通用型SSD |
SATA | |
disk_size | 是 | Integer | 磁盘大小:80-32768,单位GB | 80 | |
disk_num | 是 | Integer | 磁盘数量:系统盘固定1,数据盘1-6 | 1 |
响应参数
响应参数
参数 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|
statusCode | Integer | 状态码: 成功:200 失败:500 |
200 | |
error | String | 错误码,请求成功时,不返回该字段 | EMR_400000 | |
message | String | 用来简述当前接口调用状态以及必要提示信息 | 请求成功 | |
returnObj | Object | 返回结果 | 表 returnObj |
表 returnObj
参数 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|
orderNo | String | 订单号 | 20221018153152727265 |
枚举参数
无
请求头header示例
无
请求url示例
https://emr-global.ctapi.ctyun.cn/v2/emr/openapi/order/new
请求体body示例
数据湖请求示例:
{
"cluster_name": "sjfw-test-1",
"cluster_type": "data-lake",
"components": "OpenLDAP,Kerberos,ZooKeeper,HDFS,YARN,Hive,Tez,Spark,Hudi,Iceberg,HBase,Trino,Kyuubi,Doris,Ranger,Kafka,Knox,Flink,JeekeFS,Flume",
"region_id": "bb9fdb42056f11eda1610242ac110002",
"available_zone_id": "cn-huadong1-jsnj3A-public-ctcloud",
"vpc_Id": "vpc-n83zi9vuo0",
"subnet_id": "subnet-8hzbyype9r",
"security_groups_id": "sg-zfh4pgydhe",
"enable_ipv6": false,
"node_root_password": "Juhwqe7h!21Da.",
"charge_info": {
"charge_mode": "prePaid",
"period_type": "month",
"period_num": 1,
"is_auto_renew": false
},
"datasource_configs": [{
"type": "Hive",
"properties": [{
"name": "DB_Host",
"value": "192.168.1.100"
}, {
"name": "DB_Port",
"value": "3306"
}, {
"name": "DB_Name",
"value": "hive-1"
}, {
"name": "DB_User",
"value": "hive"
}, {
"name": "DB_Password",
"value": "A121daDAqw2A."
}
]
}, {
"type": "Ranger",
"properties": [{
"name": "DB_Host",
"value": "192.168.1.100"
}, {
"name": "DB_Port",
"value": "3306"
}, {
"name": "DB_Name",
"value": "ranger-1"
}, {
"name": "DB_User",
"value": "ranger"
}, {
"name": "DB_Password",
"value": "A121daDAqw2A."
}
]
}
],
"node_details": [{
"group_name": "master",
"node_num": 3,
"node_size": "s7.2xlarge.4",
"affinity_group": true,
"disk_specifications": [{
"disk_function": "SYSTEM",
"disk_type": "cloud",
"io_type": "SATA",
"disk_size": 80,
"disk_num": 1
}, {
"disk_function": "DATA",
"disk_type": "cloud",
"io_type": "SATA",
"disk_size": 80,
"disk_num": 2
}
]
}, {
"group_name": "core-1",
"node_num": 3,
"node_size": "s7.2xlarge.4",
"affinity_group": true,
"disk_specifications": [{
"disk_function": "SYSTEM",
"disk_type": "cloud",
"io_type": "SATA",
"disk_size": 80,
"disk_num": 1
}, {
"disk_function": "DATA",
"disk_type": "cloud",
"io_type": "SATA",
"disk_size": 80,
"disk_num": 2
}
]
}, {
"group_name": "task-1",
"node_num": 1,
"node_size": "s7.2xlarge.4",
"affinity_group": true,
"disk_specifications": [{
"disk_function": "SYSTEM",
"disk_type": "cloud",
"io_type": "SATA",
"disk_size": 80,
"disk_num": 1
}, {
"disk_function": "DATA",
"disk_type": "cloud",
"io_type": "SATA",
"disk_size": 80,
"disk_num": 2
}
]
}
]
}
响应示例
请求成功示例:
{
"statusCode": 200,
"message": "success",
"returnObj": {
"orderNo": "20221018153152727265"
}
}
验签失败示例:
{
"statusCode": 500,
"error": "EMR_401000",
"message": "OpenAPI认证失败",
"returnObj": {}
}
实名认证失败示例:
{
"statusCode": 500,
"error": "EMR_401009",
"message": "账号未进行实名认证",
"returnObj": {}
}
非法操作示例:
{
"statusCode": 500,
"error": "EMR_401004",
"message": "非法操作",
"returnObj": {}
}
请求参数类型错误示例:
{
"statusCode": 500,
"error": "EMR_401001",
"message": "请求参数类型错误",
"returnObj": {
"cluster_Name": "应为字符串"
}
}
请求参数值无效示例1:
{
"statusCode": 500,
"error": "EMR_401002",
"message": "请求参数值无效",
"returnObj": {
"cluster_Name": "不能为空"
}
}
请求参数值无效示例2:
{
"statusCode": 500,
"error": "EMR_401002",
"message": "请求参数值无效",
"returnObj": {
"cluster_type": "集群类型不存在:xxx"
}
}
规格不足示例:
{
"statusCode": 500,
"error": "EMR_401012",
"message": "规格已售罄",
"returnObj": {}
}
IP不足示例:
{
"statusCode": 500,
"error": "EMR_401013",
"message": "子网下IP余量不足",
"returnObj": {}
}
状态码
请参考状态码
错误码
请参考错误码