服务管理
更新时间:2026-07-23
接口总览
| 接口名称 | 说明 | 方法 | 路径 |
|---|---|---|---|
| ListServices | 查询集群服务列表 | POST | /v2/bcc/service/list |
| ListComponentInstances | 查询服务组件列表 | POST | /v2/bcc/service/component/list |
| ListServiceTopology | 查询服务组件拓扑列表 | POST | /v2/bcc/service/topology/list |
| OperateService | 操作服务 | POST | /v2/bcc/service/doaction |
| OperateComponent | 操作服务组件 | POST | /v2/bcc/service/component/doaction |
| ListServiceConfigFiles | 查询服务配置文件列表 | POST | /v2/bcc/service/config/list |
| GetServiceConfigFile | 查询服务配置文件内容 | POST | /v2/bcc/service/config/detail |
| ListServiceConfigHistories | 查询服务配置历史 | POST | /v2/bcc/service/config/history/list |
| GetServiceConfigHistory | 查询服务配置历史详情 | POST | /v2/bcc/service/config/history/detail |
| ModifyServiceConfig | 修改服务配置 | POST | /v2/bcc/service/config/update |
| DeployServiceConfig | 下发服务配置 | POST | /v2/bcc/service/config/push |
| AddService | 新增服务 | POST | /v2/bcc/service/add |
ListServices 查询集群组件列表
接口描述
查询集群中已安装的服务列表。
请求结构
Plain Text
1POST /v2/bcc/service/list HTTP/1.1
2Content-Type: application/json
3
4{
5 "clusterId": "clusterId",
6 "status": "status"
7}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| clusterId | String | 是 | RequestBody | 集群 ID |
| status | String | 否 | RequestBody | 按服务状态过滤;ALL 表示全部 |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| result.services | Service | 集群服务列表,详见数据类型章节 |
请求示例
JSON
1{
2 "clusterId": "0181b994-576a-4a00-b04e-f6fa9d5eee48",
3 "status": "ALL"
4}
响应示例
JSON
1{
2 "success": true,
3 "status": 200,
4 "result": {
5 "services": [
6 {"serviceName": "HDFS", "status": "Normal", "url": ""},
7 {"serviceName": "YARN", "status": "Normal", "url": "https://portal.example.com/bmr-portal-proxy/yarn"},
8 {"serviceName": "HIVE", "status": "Partial", "url": ""}
9 ]
10 }
11}
ListComponentInstances 查询组件实例列表
接口描述
查询指定服务下的组件实例列表。
请求结构
Plain Text
1POST /v2/bcc/service/component/list HTTP/1.1
2Content-Type: application/json
3
4{
5 "clusterId": "clusterId",
6 "serviceName": "serviceName"
7}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| clusterId | String | 是 | RequestBody | 集群 ID |
| serviceName | String | 是 | RequestBody | 服务名称 |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| result.components | Component | 组件实例列表,详见数据类型章节 |
| result.status | String | 服务状态 |
请求示例
JSON
1{
2 "clusterId": "0181b994-576a-4a00-b04e-f6fa9d5eee48",
3 "serviceName": "HDFS"
4}
响应示例
JSON
1{
2 "success": true,
3 "status": 200,
4 "result": {
5 "components": [
6 {"componentName": "NAMENODE", "runningNum": 2, "stoppedNum": 0, "totalNum": 2, "start": false, "stop": true, "restart": true},
7 {"componentName": "DATANODE", "runningNum": 3, "stoppedNum": 0, "totalNum": 3, "start": false, "stop": true, "restart": true}
8 ],
9 "status": "Normal"
10 }
11}
ListServiceTopology 查询组件拓扑列表
接口描述
分页查询服务/组件在节点上的部署拓扑。
请求结构
Plain Text
1POST /v2/bcc/service/topology/list HTTP/1.1
2Content-Type: application/json
3
4{
5 "clusterId": "clusterId",
6 "serviceName": "serviceName",
7 "componentName": "componentName",
8 "status": "status",
9 "pageNo": "pageNo",
10 "pageSize": "pageSize"
11}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| clusterId | String | 是 | RequestBody | 集群 ID |
| serviceName | String | 是 | RequestBody | 服务名称 |
| componentName | String | 是 | RequestBody | 组件名称,ALL 为服务下所有组件 |
| status | String | 否 | RequestBody | 按状态过滤,ALL 为所有状态 |
| pageNo | Int | 否 | RequestBody | 页码,默认为 1 |
| pageSize | Int | 否 | RequestBody | 每页数量,默认为 10 |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| page.result | TopologyInstance | 拓扑列表,详见数据类型章节 |
| page.totalCount | Int | 总数 |
服务启停
接口描述
对集群中的某个服务执行启动、停止或重启操作
请求结构
Plain Text
1POST /v2/bcc/service/doaction HTTP/1.1
2Content-Type: application/json
3
4{
5 "clusterId": "clusterId",
6 "serviceName": "serviceName",
7 "action": "action",
8 "actionDesc": "actionDesc"
9}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| clusterId | String | 是 | RequestBody | 集群 ID |
| serviceName | String | 是 | RequestBody | 服务名称 |
| action | String | 是 | RequestBody | 操作类型:START(启动)、STOP(停止)、RESTART(重启) |
| actionDesc | String | 否 | RequestBody | 操作描述 |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| result | Null | 成功时为空 |
请求示例
JSON
1{
2 "clusterId": "0181b994-576a-4a00-b04e-f6fa9d5eee48",
3 "serviceName": "HDFS",
4 "action": "RESTART"
5}
响应示例
JSON
1{
2 "success": true,
3 "status": 200,
4 "result": null
5}
组件实例启停
接口描述
对集群中某个服务下的指定组件实例执行启动、停止或重启操作。当 instanceIds 为空时,操作作用于该组件的全部实例。
请求结构
Plain Text
1POST /v2/bcc/service/component/doaction HTTP/1.1
2Content-Type: application/json
3
4{
5 "clusterId": "clusterId",
6 "serviceName": "serviceName",
7 "component": "component",
8 "instanceIds": ["instanceIds"],
9 "action": "action",
10 "actionDesc": "actionDesc"
11}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| clusterId | String | 是 | RequestBody | 集群 ID |
| serviceName | String | 是 | RequestBody | 服务名称 |
| component | String | 是 | RequestBody | 组件名称(如 NAMENODE、DATANODE) |
| instanceIds | List |
否 | RequestBody | 目标实例 ID 列表,留空时表示对该组件全部实例操作 |
| action | String | 是 | RequestBody | 操作类型:START(启动)、STOP(停止)、RESTART(重启) |
| actionDesc | String | 否 | RequestBody | 操作描述 |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| result | Null | 成功时为空 |
请求示例
JSON
1{
2 "clusterId": "0181b994-576a-4a00-b04e-f6fa9d5eee48",
3 "serviceName": "HDFS",
4 "component": "DATANODE",
5 "instanceIds": ["i-xxxxxx01", "i-xxxxxx02"],
6 "action": "RESTART",
7 "actionDesc": "manual restart"
8}
响应示例
JSON
1{
2 "success": true,
3 "status": 200,
4 "result": null
5}
ListServiceConfigFiles 查询服务配置文件列表
接口描述
查询服务的配置文件列表。
请求结构
Plain Text
1POST /v2/bcc/service/config/list HTTP/1.1
2Content-Type: application/json
3
4{
5 "clusterId": "clusterId",
6 "serviceName": "serviceName",
7 "groupName": "groupName"
8}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| clusterId | String | 是 | RequestBody | 集群 ID |
| serviceName | String | 是 | RequestBody | 服务名称 |
| groupName | String | 是 | RequestBody | 配置组名称,MASTER/CORE |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| result.typeNames | List |
配置文件类型名列表(如 hdfs-site、core-site 等) |
请求示例
JSON
1{
2 "clusterId": "0181b994-576a-4a00-b04e-f6fa9d5eee48",
3 "serviceName": "HDFS",
4 "groupName": "MASTER"
5}
响应示例
JSON
1{
2 "success": true,
3 "status": 200,
4 "result": {
5 "typeNames": ["core-site", "hdfs-site", "hadoop-env"]
6 }
7}
GetServiceConfigFile 查询服务配置文件内容
接口描述
查询服务某个配置文件的具体内容。
请求结构
Plain Text
1POST /v2/bcc/service/config/detail HTTP/1.1
2Content-Type: application/json
3
4{
5 "clusterId": "clusterId",
6 "serviceName": "serviceName",
7 "groupName": "groupName",
8 "typeName": "typeName"
9}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| clusterId | String | 是 | RequestBody | 集群 ID |
| serviceName | String | 是 | RequestBody | 服务名称 |
| groupName | String | 是 | RequestBody | 配置组名称 |
| typeName | String | 是 | RequestBody | 配置文件类型名(如 hdfs-site) |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| result | ServiceConfigFile | 服务配置文件内容,详见数据类型章节 |
请求示例
JSON
1{
2 "clusterId": "0181b994-576a-4a00-b04e-f6fa9d5eee48",
3 "serviceName": "HDFS",
4 "groupName": "MASTER",
5 "typeName": "hdfs-site"
6}
响应示例
JSON
1{
2 "success": true,
3 "status": 200,
4 "result": {
5 "typeName": "hdfs-site",
6 "contentType": "json",
7 "content": "{\"dfs.replication\":\"3\",\"dfs.blocksize\":\"134217728\"}",
8 "pushed": true
9 }
10}
ListServiceConfigHistories 查询服务配置历史
接口描述
分页查询服务配置的修改历史。
请求结构
Plain Text
1POST /v2/bcc/service/config/history/list HTTP/1.1
2Content-Type: application/json
3
4{
5 "clusterId": "clusterId",
6 "serviceName": "serviceName",
7 "startTime": "startTime",
8 "keyword": "keyword",
9 "keywordType": "keywordType",
10 "pageNo": "pageNo",
11 "pageSize": "pageSize"
12}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| clusterId | String | 是 | RequestBody | 集群 ID |
| serviceName | String | 是 | RequestBody | 服务名称 |
| startTime | Time | 否 | RequestBody | 起始时间 |
| keyword | String | 否 | RequestBody | 搜索关键字 |
| keywordType | String | 否 | RequestBody | 搜索类型:typeName(按配置文件类型名)、operatorName(按操作人) |
| pageNo | Int | 否 | RequestBody | 页码 |
| pageSize | Int | 否 | RequestBody | 每页数量 |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| page.result | ConfigHistory | 配置历史列表,详见数据类型章节 |
| page.totalCount | Int | 总数 |
请求示例
JSON
1{
2 "clusterId": "0181b994-576a-4a00-b04e-f6fa9d5eee48",
3 "serviceName": "HDFS",
4 "keyword": "hdfs-site",
5 "keywordType": "typeName",
6 "pageNo": 1,
7 "pageSize": 10
8}
响应示例
JSON
1{
2 "success": true,
3 "status": 200,
4 "page": {
5 "result": [
6 {
7 "id": "history-uuid-001",
8 "typeName": "hdfs-site",
9 "preVersion": 1,
10 "currentVersion": 2,
11 "operator": "alice",
12 "modifyTime": "2026-06-18T10:00:00Z",
13 "remark": "tune dfs.replication",
14 "configGroupName": "MASTER"
15 }
16 ],
17 "totalCount": 1
18 }
19}
GetServiceConfigHistory 查询服务配置历史详情
接口描述
查询某条服务配置历史记录的变更详情。
请求结构
Plain Text
1POST /v2/bcc/service/config/history/detail HTTP/1.1
2Content-Type: application/json
3
4{
5 "Id": "Id",
6 "clusterId": "clusterId",
7 "serviceName": "serviceName",
8 "typeName": "typeName",
9 "preVersion": "preVersion",
10 "currentVersion": "currentVersion"
11}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| Id | String | 是 | RequestBody | 配置组名称,如 MASTER/CORE 等 |
| clusterId | String | 是 | RequestBody | 集群 ID |
| serviceName | String | 是 | RequestBody | 服务名称 |
| typeName | String | 是 | RequestBody | 配置文件类型名 |
| preVersion | Int | 是 | RequestBody | 对比的旧版本号 |
| currentVersion | Int | 是 | RequestBody | 当前版本号 |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| result | ServiceConfigHistoryDetail | 服务配置历史详情,详见数据类型章节 |
请求示例
JSON
1{
2 "Id": "history-uuid-001",
3 "clusterId": "0181b994-576a-4a00-b04e-f6fa9d5eee48",
4 "serviceName": "HDFS",
5 "typeName": "hdfs-site",
6 "preVersion": 1,
7 "currentVersion": 2
8}
响应示例
JSON
1{
2 "success": true,
3 "status": 200,
4 "result": {
5 "contentType": "json",
6 "preContent": "{\"dfs.replication\":\"2\"}",
7 "currentContent": "{\"dfs.replication\":\"3\"}",
8 "remark": "tune dfs.replication"
9 }
10}
ModifyServiceConfig 修改服务配置
接口描述
修改服务配置(写入待下发状态,需再调用下发接口生效)。
请求结构
Plain Text
1POST /v2/bcc/service/config/update HTTP/1.1
2Content-Type: application/json
3
4{
5 "clusterId": "clusterId",
6 "serviceName": "serviceName",
7 "groupName": "groupName",
8 "modifyConfigs": [
9 {
10 "typeName": "typeName",
11 "contentType": "contentType",
12 "modifyConfig": "modifyConfig",
13 "deleteConfigs": ["deleteConfigs"]
14 }
15 ]
16}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| clusterId | String | 是 | RequestBody | 集群 ID |
| serviceName | String | 是 | RequestBody | 服务名称 |
| groupName | String | 是 | RequestBody | 配置组名称 |
| modifyConfigs | List | 是 | RequestBody | 待修改的配置项列表 |
| modifyConfigs[].typeName | String | 是 | RequestBody | 配置文件类型名 |
| modifyConfigs[].contentType | String | 否 | RequestBody | 内容类型 |
| modifyConfigs[].modifyConfig | String | 是 | RequestBody | 修改后的配置内容(修改或新增的配置) |
| modifyConfigs[].deleteConfigs | List |
否 | RequestBody | 待删除的配置项,仅提供配置项的名称 |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| result | Null | 成功时为空 |
请求示例
JSON
1{
2 "clusterId": "0181b994-576a-4a00-b04e-f6fa9d5eee48",
3 "serviceName": "HDFS",
4 "groupName": "MASTER",
5 "modifyConfigs": [
6 {
7 "typeName": "hdfs-site",
8 "contentType": "json",
9 "modifyConfig": "{\"dfs.replication\":\"3\",\"dfs.blocksize\":\"134217728\"}",
10 "deleteConfigs": ["dfs.deprecated.key"]
11 }
12 ]
13}
响应示例
JSON
1{
2 "success": true,
3 "status": 200,
4 "result": null
5}
DeployServiceConfig 下发服务配置
接口描述
将已修改的服务配置下发到集群,可选择是否重启服务使配置生效。
请求结构
Plain Text
1POST /v2/bcc/service/config/push HTTP/1.1
2Content-Type: application/json
3
4{
5 "clusterId": "clusterId",
6 "serviceName": "serviceName",
7 "remark": "remark",
8 "restart": "restart"
9}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| clusterId | String | 是 | RequestBody | 集群 ID |
| serviceName | String | 是 | RequestBody | 服务名称 |
| remark | String | 否 | RequestBody | 下发备注,默认为空 |
| restart | Boolean | 否 | RequestBody | 下发后是否重启服务,默认为 false |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| result | Null | 成功时为空 |
请求示例
JSON
1{
2 "clusterId": "0181b994-576a-4a00-b04e-f6fa9d5eee48",
3 "serviceName": "HDFS",
4 "remark": "tune dfs.replication",
5 "restart": true
6}
响应示例
JSON
1{
2 "success": true,
3 "status": 200,
4 "result": null
5}
AddService 新增服务
接口描述
向已有集群新增服务。可配套先调用校验接口 service_add/validate 与询价/应用接口 service_add/apply。
请求结构
Plain Text
1POST /v2/bcc/service/add HTTP/1.1
2Content-Type: application/json
3
4{
5 "clusterId": "clusterId",
6 "services": ["services"],
7 "componentConfigs": {
8 "componentConfigs": "componentConfigs"
9 }
10}
请求参数
| 名称 | 类型 | 是否必须 | 参数位置 | 参数描述 |
|---|---|---|---|---|
| clusterId | String | 是 | RequestBody | 集群 ID |
| services | List |
是 | RequestBody | 待新增的服务名称列表,当前可选 spark、iceberg、kyuubi |
| componentConfigs | Map<String, Object> | 否 | RequestBody | 待新增服务参数,仅 kyuubi 生效,用于 kyuubi server 指定节点部署,请参考请求示例,指定的节点提供内网 ip 信息,否则会部署失败 |
响应参数
| 参数名 | 参数类型 | 参数描述 |
|---|---|---|
| success | Bool | 请求是否成功 |
| status | Int | HTTP 状态码 |
| result | Null | 成功时为空 |
请求示例
JSON
1{
2 "clusterId": "0181b994-576a-4a00-b04e-f6fa9d5eee48",
3 "services": ["spark", "kyuubi"],
4 "componentConfigs": {
5 "kyuubi": {
6 "kyuubi-server": ["192.168.1.10", "192.168.1.11"]
7 }
8 }
9}
响应示例
JSON
1{
2 "success": true,
3 "status": 200,
4 "result": null
5}
错误返回码
| HTTP Status | Code | Message | 说明 |
|---|---|---|---|
| 404 | ConfigGroupNotFound | ConfigGroupNotFound | 配置组不存在或未启用 |
| 400 | InvalidArguments | Invalid arguments | modifyConfigs 内容非法(如 JSON 解析失败) |
| 400 | UnsupportedClusterStatus | The clusterStatus not support | 当前集群状态不支持下发配置 |
| 400 | UnsupportedClusterAction | The clusterAction not support | action 取值不在 START / STOP / RESTART 范围内 |
| 400 | UnsupportedClusterStatus | The clusterStatus not support | 集群当前状态不允许执行该操作 |
| 400 | InvalidArguments | Invalid arguments | services 列表为空或包含不支持的服务名 |
| 400 | ClusterNotActive | The cluster is not active | 集群非 Active 状态,不允许新增服务 |
| 403 | OperateForbid | The requested operation is forbidden for this resource | 当前用户/集群类型不允许新增服务 |
评价此篇文章
