更新时间:2024-01-23 GMT+08:00
分享

查询对应版本元数据

功能介绍

查询对应版本元数据。如果参数里指定集群id,则可查询集群更新过补丁之后的最新元数据。

调用方法

请参见如何调用API

URI

GET /v1.1/{project_id}/metadata/versions/{version_name}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID。

version_name

String

集群版本。例如“MRS 3.1.0”。如果请求客户端不支持自动转义,则需要将空格转义为%20,例如“MRS%203.1.0”。

表2 Query参数

参数

是否必选

参数类型

描述

cluster_id

String

集群ID。如果指定集群ID,则获取该集群做过补丁更新的最新版本元数据。

请求参数

响应参数

状态码: 200

表3 响应Body参数

参数

参数类型

描述

other

Map<String,Object>

其他

name

String

镜像版本名称

template_type

String

模板类型

image_id

String

镜像ID

status

String

版本状态

features

Array of strings

特性列表

cluster_types

Array of strings

集群类型列表

version_type

String

版本类型

components

Array of VersionComponent objects

组件列表

resource_requirement

Array of strings

版本所需的ip等资源说明

constraints

VersionConstraint object

版本限制说明

flavors

FlavorLists object

规格列表

role_deploy_meta

Array of RoleDeployMeta objects

版本组件实例角色部署策略

表4 VersionComponent

参数

参数类型

描述

other

Map<String,Object>

其他

name

String

组件名称

version

String

支持版本

depend_on

Array of strings

组件依赖项

description

String

组件描述

available_cluster_types

Array of strings

支持该组件的集群类型

external_datasources

Array of ComponentExternalDatasource objects

外部数据源

resource_requirement

Array of strings

所需的ip等资源说明

valid_roles

Array of strings

有效角色

visible

Boolean

是否可见

children_components

Array of strings

子组件

multi_az_support_status

String

多az支持状态

表5 ComponentExternalDatasource

参数

参数类型

描述

name

String

外部数据源名称

types

Array of strings

外部数据源类型

表6 VersionConstraint

参数

参数类型

描述

other

Map<String,Object>

其他限制

node_constraint

NodeConstraints object

节点限制

safe_mode_kerberos_exclude_components

Array of strings

安全模式kerberos排除组件列表

表7 NodeConstraints

参数

参数类型

描述

other

Map<String,Object>

其他节点限制

master

NodeConstraint object

master节点限制,包括节点数,磁盘等限制

core

NodeConstraint object

core节点限制,包括节点数,磁盘等限制

task

NodeConstraint object

task节点限制,包括节点数,磁盘等限制

core_separate

NodeConstraint object

core节点管控分离限制,管控分离模版下core节点的限制,包括节点数,磁盘等限制

core_combine

NodeConstraint object

core节点管控合设限制,管控合设模版下core节点的限制,包括节点数,磁盘等限制

task_separate

NodeConstraint object

task节点管控分离限制,管控分离模版下task节点的限制,包括节点数,磁盘等限制

task_combine

NodeConstraint object

task节点管控合设限制,管控合设模版下task节点的限制,包括节点数,磁盘等限制

node_group_task

NodeConstraint object

task节点组限制,包括节点数,磁盘等限制

表8 NodeConstraint

参数

参数类型

描述

other

Map<String,Object>

其他限制

min_node_num

Integer

最少节点数

max_node_num

Integer

最多节点数

min_core_num

Map<String,Integer>

最少核心数

min_mem_size

Map<String,Integer>

最小内存容量

min_disk_size

Integer

最小磁盘容量

max_node_group_num

Integer

最大节点组数

min_data_volume_total_size

Map<String,Integer>

最小数据卷容量

disk_type_constraint

Map<String,String>

磁盘类型限制,包含当前节点组所支持的磁盘类型

min_root_disk_size

Integer

最小系统磁盘大小

表9 FlavorLists

参数

参数类型

描述

master

Array of strings

master节点支持的规格列表

core

Array of strings

core节点支持的规格列表

task

Array of strings

task节点支持的规格列表

表10 RoleDeployMeta

参数

参数类型

描述

other

Map<String,Object>

其他扩展属性

name

String

角色名称

code_name

String

角色简称

component

String

角色所属组件

node_preference

String

部署倾向

count

String

角色数量限制

affinity

String

亲和

affinity_target

String

亲和目标

multi_instance

Integer

多实例

role_kind

String

角色类型

constraints

Array of strings

角色限制,包含当前组件角色的一些功能限制,例如:"no_scale_in"

multi_az_placement

String

多az部署

arbitration_deployment

Boolean

仲裁部署

support_elb

Boolean

支持ELB

multi_affinity_group_enable

Boolean

启用多亲和组

local_disks_anti_affinity

Boolean

本地盘反亲和

multi_instance_name_pattern

String

多实例名称模式

private_ip

String

私有IP

weight

String

权重

请求示例

获取MRS 3.1.0的版本元数据

GET /v1.1/{project_id}/metadata/versions/MRS%203.1.0

响应示例

状态码: 200

版本元数据详情。(该样例省略了部分内容,详细返回请调用接口查看)

{
  "other" : { },
  "name" : "MRS 3.1.0",
  "template_type" : "clusterFusion",
  "image_id" : "ECS:X86:deda7c89-6069-46d3-af7c-4afc31eec0d9,ECS:ARM:d5f0087b-9fd7-4977-b9c8-d07262f452d6,BMS:ks1ne:bf071a00-d1d6-472f-943b-22f733248f36,BMS:d2:a9a1a279-85c9-4c05-bd0a-4cb786937a09",
  "status" : "GA",
  "features" : [ "anti_affinity", "auto_scaling", "bootstrap_scripts", "bootstrap_support_obs", "custom_config", "custom_topology", "datasource_manager", "decouple_install", "elastic_ip", "fi_cluster", "fi_cluster_v2", "iam_user_sync", "log_collect", "log_collect_v2", "master_scale_up", "mrs_ecs_agency", "multi_disks", "multi_login_mode", "obs_integration", "obs_user_policy", "opensource_port_matrix", "ops_channel", "password_policy_v2", "random_passwd_for_install", "register_dns_server", "resize", "resources_plans", "safe_mode", "scale_scripts", "security_job_submit", "smn_alarm", "spark_sql_validation_in_executor", "support_obs_protocol", "task_node", "unified_management_ui", "sql_execution", "multi_az", "weak_multi_az_deployment_constraint", "multi_master_scale_up", "omm_random_pwd", "metric_monitor", "auth_manager", "cluster_patch", "hw_domain_name", "fi_custom_config", "force_scale_up", "skip_fi_evs_expand", "detach_node" ],
  "cluster_types" : [ "analysis", "streaming", "mixed", "custom" ],
  "version_type" : "basic",
  "components" : [ {
    "other" : { },
    "name" : "Hadoop",
    "version" : "3.1.1",
    "depend_on" : [ "ZooKeeper", "Ranger" ],
    "description" : "A framework that allows for the distributed processing of large data sets across clusters.",
    "available_cluster_types" : [ "analysis", "mixed", "custom" ],
    "external_datasources" : null,
    "resource_requirement" : [ "privateIp:1" ],
    "valid_roles" : [ "NameNode", "Zkfc", "JournalNode", "DataNode", "ResourceManager", "NodeManager", "JobHistoryServer", "TimelineServer", "HttpFS" ],
    "visible" : true,
    "children_components" : [ "HDFS", "Mapreduce", "Yarn" ],
    "multi_az_support_status" : "multi_az_ha"
  }, {
    "other" : { },
    "name" : "Spark2x",
    "version" : "2.4.5",
    "depend_on" : [ "HDFS", "Yarn", "Hive", "KrbClient", "KrbServer", "ZooKeeper" ],
    "description" : "Apache Spark2x is a fast and general engine based on open source Spark2.x for large-scale data processing.",
    "available_cluster_types" : [ "analysis", "mixed", "custom" ],
    "external_datasources" : null,
    "resource_requirement" : null,
    "valid_roles" : [ "JobHistory2x", "JDBCServer2x", "SparkResource2x", "IndexServer2x" ],
    "visible" : true,
    "children_components" : [ "Spark2x" ],
    "multi_az_support_status" : "multi_az_ha"
  }, {
    "other" : { },
    "name" : "HBase",
    "version" : "2.2.3",
    "depend_on" : [ "HDFS", "Yarn", "KrbServer", "ZooKeeper" ],
    "description" : "A scalable, distributed database that supports structured data storage for large tables.",
    "available_cluster_types" : [ "analysis", "mixed", "custom" ],
    "external_datasources" : null,
    "resource_requirement" : null,
    "valid_roles" : [ "HMaster", "RegionServer", "ThriftServer", "Thrift1Server", "RESTServer", "RegionServer_1" ],
    "visible" : true,
    "children_components" : [ "HBase" ],
    "multi_az_support_status" : "multi_az_ha"
  }, {
    "other" : { },
    "name" : "Hive",
    "version" : "3.1.0",
    "depend_on" : [ "HDFS", "Mapreduce", "Yarn", "DBService", "ZooKeeper" ],
    "description" : "A data warehouse infrastructure that provides data summarization and ad hoc querying.",
    "available_cluster_types" : [ "analysis", "mixed", "custom" ],
    "external_datasources" : [ {
      "name" : "hive_metastore",
      "types" : [ "RDS_MYSQL", "DLCATALOG" ]
    } ],
    "resource_requirement" : null,
    "valid_roles" : [ "MetaStore", "WebHCat", "HiveServer" ],
    "visible" : true,
    "children_components" : [ "Hive" ],
    "multi_az_support_status" : "multi_az_ha"
  }, {
    "other" : { },
    "name" : "ZooKeeper",
    "version" : null,
    "depend_on" : [ "KrbClient", "KrbServer" ],
    "description" : null,
    "available_cluster_types" : [ "analysis", "streaming", "mixed", "custom" ],
    "external_datasources" : null,
    "resource_requirement" : null,
    "valid_roles" : [ "quorumpeer" ],
    "visible" : true,
    "children_components" : [ "ZooKeeper" ],
    "multi_az_support_status" : "multi_az_ha"
  } ],
  "resource_requirement" : [ "privateIp:2" ],
  "constraints" : {
    "other" : { },
    "node_constraint" : {
      "other" : { },
      "master" : {
        "other" : { },
        "min_node_num" : 2,
        "max_node_num" : 9,
        "min_core_num" : null,
        "min_mem_size" : null,
        "min_disk_size" : 600,
        "max_node_group_num" : 1,
        "min_data_volume_total_size" : null,
        "disk_type_constraint" : null,
        "min_root_disk_size" : 480
      },
      "core" : {
        "other" : { },
        "min_node_num" : 3,
        "max_node_num" : 500,
        "min_core_num" : null,
        "min_mem_size" : null,
        "min_disk_size" : 600,
        "max_node_group_num" : null,
        "min_data_volume_total_size" : null,
        "disk_type_constraint" : null,
        "min_root_disk_size" : 480
      },
      "task" : null,
      "core_separate" : null,
      "core_combine" : null,
      "task_separate" : null,
      "task_combine" : null,
      "node_group_task" : {
        "other" : { },
        "min_node_num" : 2,
        "max_node_num" : 10000,
        "min_core_num" : null,
        "min_mem_size" : null,
        "min_disk_size" : 600,
        "max_node_group_num" : 9,
        "min_data_volume_total_size" : null,
        "disk_type_constraint" : null,
        "min_root_disk_size" : 480
      }
    },
    "safe_mode_kerberos_exclude_components" : [ "Presto", "Pulsar" ]
  },
  "flavors" : {
    "master" : [ "ac7.4xlarge.4", "ac7.8xlarge.4", "ac7.16xlarge.4", "ac7.32xlarge.4", "ac7.8xlarge.2", "ac7.16xlarge.2", "ac7.32xlarge.2", "am7.2xlarge.8", "am7.4xlarge.8", "am7.8xlarge.8", "c3ne.4xlarge.4", "c3ne.8xlarge.4", "c3ne.15xlarge.4" ],
    "core" : [ "ac7.4xlarge.4", "ac7.8xlarge.4", "ac7.16xlarge.4", "ac7.32xlarge.4", "ac7.8xlarge.2", "ac7.16xlarge.2", "ac7.32xlarge.2", "am7.2xlarge.8", "am7.4xlarge.8", "am7.8xlarge.8", "c3ne.4xlarge.4", "c3ne.8xlarge.4", "c3ne.15xlarge.4", "c6.4xlarge.4", "c6.8xlarge.2", "c6.8xlarge.4", "c6.16xlarge.2" ],
    "task" : [ "ac7.4xlarge.4", "ac7.8xlarge.4", "ac7.16xlarge.4", "ac7.32xlarge.4", "ac7.8xlarge.2", "ac7.16xlarge.2", "ac7.32xlarge.2", "am7.2xlarge.8", "am7.4xlarge.8", "am7.8xlarge.8", "c3ne.4xlarge.4", "c3ne.8xlarge.4", "c3ne.15xlarge.4" ]
  },
  "role_deploy_meta" : [ {
    "other" : { },
    "name" : "OMSServer",
    "code_name" : "OMS",
    "component" : "OMSServer",
    "node_preference" : "MASTER",
    "count" : "2",
    "affinity" : null,
    "affinity_target" : null,
    "multi_instance" : null,
    "role_kind" : null,
    "constraints" : null,
    "multi_az_placement" : "AT_LEAST_2",
    "arbitration_deployment" : false,
    "support_elb" : false,
    "multi_affinity_group_enable" : false,
    "local_disks_anti_affinity" : false,
    "multi_instance_name_pattern" : null,
    "private_ip" : null,
    "weight" : null
  }, {
    "other" : { },
    "name" : "NameNode",
    "code_name" : "NN",
    "component" : "HDFS",
    "node_preference" : "MASTER",
    "count" : "2",
    "affinity" : null,
    "affinity_target" : null,
    "multi_instance" : null,
    "role_kind" : null,
    "constraints" : null,
    "multi_az_placement" : "AT_LEAST_2",
    "arbitration_deployment" : false,
    "support_elb" : false,
    "multi_affinity_group_enable" : false,
    "local_disks_anti_affinity" : false,
    "multi_instance_name_pattern" : null,
    "private_ip" : null,
    "weight" : null
  }, {
    "other" : { },
    "name" : "Zkfc",
    "code_name" : "ZKFC",
    "component" : "HDFS",
    "node_preference" : null,
    "count" : null,
    "affinity" : "JUST_COLOCATE",
    "affinity_target" : "NameNode",
    "multi_instance" : null,
    "role_kind" : null,
    "constraints" : null,
    "multi_az_placement" : "AT_LEAST_2",
    "arbitration_deployment" : false,
    "support_elb" : false,
    "multi_affinity_group_enable" : false,
    "local_disks_anti_affinity" : false,
    "multi_instance_name_pattern" : null,
    "private_ip" : null,
    "weight" : null
  }, {
    "other" : { },
    "name" : "HttpFS",
    "code_name" : "HFS",
    "component" : "HDFS",
    "node_preference" : "MASTER",
    "count" : "[0-10]",
    "affinity" : null,
    "affinity_target" : null,
    "multi_instance" : null,
    "role_kind" : null,
    "constraints" : null,
    "multi_az_placement" : "AT_LEAST_2",
    "arbitration_deployment" : false,
    "support_elb" : false,
    "multi_affinity_group_enable" : false,
    "local_disks_anti_affinity" : false,
    "multi_instance_name_pattern" : null,
    "private_ip" : null,
    "weight" : null
  }, {
    "other" : { },
    "name" : "JournalNode",
    "code_name" : "JN",
    "component" : "HDFS",
    "node_preference" : "MASTER",
    "count" : "[3-60],step=2",
    "affinity" : null,
    "affinity_target" : null,
    "multi_instance" : null,
    "role_kind" : null,
    "constraints" : null,
    "multi_az_placement" : "QUORUM_LIKE",
    "arbitration_deployment" : true,
    "support_elb" : false,
    "multi_affinity_group_enable" : false,
    "local_disks_anti_affinity" : false,
    "multi_instance_name_pattern" : null,
    "private_ip" : null,
    "weight" : null
  }, {
    "other" : { },
    "name" : "DataNode",
    "code_name" : "DN",
    "component" : "HDFS",
    "node_preference" : "NO_LIMIT",
    "count" : "[3-10000]",
    "affinity" : null,
    "affinity_target" : null,
    "multi_instance" : null,
    "role_kind" : "stateful",
    "constraints" : null,
    "multi_az_placement" : "AT_LEAST_2",
    "arbitration_deployment" : false,
    "support_elb" : false,
    "multi_affinity_group_enable" : false,
    "local_disks_anti_affinity" : false,
    "multi_instance_name_pattern" : null,
    "private_ip" : null,
    "weight" : null
  }, {
    "other" : { },
    "name" : "ResourceManager",
    "code_name" : "RM",
    "component" : "Yarn",
    "node_preference" : "MASTER",
    "count" : "2",
    "affinity" : null,
    "affinity_target" : null,
    "multi_instance" : null,
    "role_kind" : null,
    "constraints" : null,
    "multi_az_placement" : "AT_LEAST_2",
    "arbitration_deployment" : false,
    "support_elb" : false,
    "multi_affinity_group_enable" : false,
    "local_disks_anti_affinity" : false,
    "multi_instance_name_pattern" : null,
    "private_ip" : null,
    "weight" : null
  }, {
    "other" : { },
    "name" : "NodeManager",
    "code_name" : "NM",
    "component" : "Yarn",
    "node_preference" : "NO_LIMIT",
    "count" : "[3-10000]",
    "affinity" : null,
    "affinity_target" : null,
    "multi_instance" : null,
    "role_kind" : "stateless",
    "constraints" : null,
    "multi_az_placement" : "AT_LEAST_2",
    "arbitration_deployment" : false,
    "support_elb" : false,
    "multi_affinity_group_enable" : false,
    "local_disks_anti_affinity" : false,
    "multi_instance_name_pattern" : null,
    "private_ip" : null,
    "weight" : null
  } ]
}

SDK代码示例

SDK代码示例如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.mrs.v1.region.MrsRegion;
import com.huaweicloud.sdk.mrs.v1.*;
import com.huaweicloud.sdk.mrs.v1.model.*;


public class ShowMrsVersionMetadataSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        MrsClient client = MrsClient.newBuilder()
                .withCredential(auth)
                .withRegion(MrsRegion.valueOf("<YOUR REGION>"))
                .build();
        ShowMrsVersionMetadataRequest request = new ShowMrsVersionMetadataRequest();
        request.withClusterId("<cluster_id>");
        try {
            ShowMrsVersionMetadataResponse response = client.showMrsVersionMetadata(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# coding: utf-8

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkmrs.v1.region.mrs_region import MrsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkmrs.v1 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.getenv("CLOUD_SDK_AK")
    sk = os.getenv("CLOUD_SDK_SK")

    credentials = BasicCredentials(ak, sk) \

    client = MrsClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(MrsRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ShowMrsVersionMetadataRequest()
        request.cluster_id = "<cluster_id>"
        response = client.show_mrs_version_metadata(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    mrs "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/mrs/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/mrs/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/mrs/v1/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := mrs.NewMrsClient(
        mrs.MrsClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ShowMrsVersionMetadataRequest{}
	clusterIdRequest:= "<cluster_id>"
	request.ClusterId = &clusterIdRequest
	response, err := client.ShowMrsVersionMetadata(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

版本元数据详情。(该样例省略了部分内容,详细返回请调用接口查看)

错误码

请参见错误码

分享:

    相关文档

    相关产品