华为云用户手册

  • URI PUT /v2/{project_id}/clusters/{cluster_id}/logical-clusters/{logical_cluster_id} 表1 路径参数 参数 是否必选 参数类型 描述 cluster_id 是 String 指定待编辑集群的ID。获取方法,请参见获取集群ID。 project_id 是 String 项目ID。获取方法,请参见获取项目ID。 logical_cluster_id 是 String 指定待编辑逻辑集群的ID。
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 cluster_rings 是 Array of ClusterRing objects 逻辑集群编辑环列表信息。 mode 否 String 模式。 waiting_for_killing 否 Integer 是否等待销毁。 表3 ClusterRing 参数 是否必选 参数类型 描述 ring_hosts 是 Array of RingHost objects 集群主机信息。 表4 RingHost 参数 是否必选 参数类型 描述 host_name 是 String 主机名称。 back_ip 是 String 后端IP地址。 cpu_cores 是 Integer 主机CPU核数。 memory 是 Double 主机内存。 disk_size 是 Double 主机磁盘大小。
  • 请求示例 POST https://{Endpoint}/v2/89cd04f168b84af6be287f71730fdb4b/clusters/4ca46bf1-5c61-48ff-b4f3-0ad4e5e3ba90/nodes/delete { "node_list" : [ "16413746-258e-4a3c-bea9-8496fdbefde3" ], "operate_type" : "delete" }
  • 请求示例 POST https://{Endpoint}/v2/89cd04f168b84af6be287f71730fdb4b/clusters/4ca46bf1-5c61-48ff-b4f3-0ad4e5e3ba90/resize-with-existed-nodes { "scale_out" : { "count" : 3 }, "force_backup" : false, "mode" : "read-only", "logical_cluster_name" : "test-logical-cluster", "expand_with_existed_node" : true, "create_node_only" : true, "auto_redistribute" : true, "is_scheduler_build_mode" : false, "redis_conf" : { "redis_mode" : "offLine", "schedule_conf" : null, "parallel_jobs" : 4, "parallel_job" : 4 }, "build_task_info" : { "build_mode" : "read-only", "start_time" : null, "end_time" : null } }
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 scale_out 是 ScaleOut object 扩容对象。 resize 否 Resize object 扩容节点大小。 force_backup 是 Boolean 是否强制备份。 mode 是 String 扩容模式。 logical_cluster_name 是 String 逻辑集群名称。 expand_with_existed_node 是 Boolean 是否是使用已添加的空闲节点进行扩容。 create_node_only 是 Boolean 是否只是添加节点。 auto_redistribute 是 Boolean 扩容完成后是否自动启动重分布,默认true。 is_scheduler_build_mode 是 Boolean 是否调度模式扩容加节点。 redis_conf 是 RedisConf object 重分布配置信息。 build_task_info 是 BuildTaskInfo object 调度模式扩容加节点配置信息。 order_id 否 String 扩容订单ID。 表3 ScaleOut 参数 是否必选 参数类型 描述 count 是 Integer 扩容节点数。 表4 Resize 参数 是否必选 参数类型 描述 node_type 是 String 调整大小目标规格。 number_of_node 是 Integer 调整大小目标节点数。 表5 RedisConf 参数 是否必选 参数类型 描述 redis_mode 是 String 重分布模式。 schedule_conf 否 ScheduleConf object 调度配置信息。 parallel_jobs 是 Integer 并行作业数量。 parallel_job 是 Integer 并行作业数量。 表6 ScheduleConf 参数 是否必选 参数类型 描述 schedule_start 否 String 调度开始时间。 schedule_end 否 String 调度结束时间。 schedule_type 否 String 调度类型。 schedule_date 否 Array of integers 调度日期。 schedule_time 否 Array of strings 调度时间列表。 表7 BuildTaskInfo 参数 是否必选 参数类型 描述 build_mode 是 String 任务模式。 start_time 否 String 任务开始时间。 end_time 否 String 任务结束时间。 category_id 否 String 策略ID。
  • URI GET /v2/{project_id}/clusters/{cluster_id}/logical-clusters/volumes 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取方法,请参见获取项目ID。 cluster_id 是 String 集群ID。获取方法,请参见获取集群ID。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 分页查询,偏移。 limit 否 Integer 分页查询,每页显示的条目数量。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 volumes Array of LogicalClusterVolume objects 逻辑集群磁盘信息列表。 count Long 逻辑集群磁盘总数。 表4 LogicalClusterVolume 参数 参数类型 描述 logical_cluster_name String 逻辑集群名称。 usage String 磁盘使用量。 total String 磁盘总量。 percent String 磁盘使用比例。
  • URI DELETE /v2/{project_id}/clusters/{cluster_id}/logical-clusters/{logical_cluster_id} 表1 路径参数 参数 是否必选 参数类型 描述 cluster_id 是 String 指定待删除集群的ID。获取方法,请参见获取集群ID。 project_id 是 String 项目ID。获取方法,请参见获取项目ID。 logical_cluster_id 是 String 指定待删除逻辑集群的ID。
  • 操作场景 当您购买的 云桌面 规格无法满足业务需要时,可参考本章节变更规格,升级vCPU、内存。 “包年/包月”的桌面: 同一套餐类型内的规格变更,仅支持升高云桌面规格。例如,当前桌面规格为尊享版8核16G,则只能变更规格为尊享版8核32G。 跨套餐类型间的规格变更,支持相同规格变更以及升高云桌面的规格。例如当前桌面规格为企业版8核16G,可变更为尊享版8核16G、8核32G。 “按需计费”的桌面: 同一套餐类型内的规格变更,可根据业务需要,升高或降低云桌面规格。例如,当前桌面规格为尊享版8核16G,则可变更规格为尊享版8核32G,或者尊享版4核8G等低于8核16G的规格。 跨套餐类型间的规格变更,支持相同规格变更、升高或降低云桌面规格。例如,当前桌面规格为企业版8核16G,则可变更规格为尊享版8核16G、尊享版8核32G,或者尊享版4核8G等低于8核16G的规格。
  • 操作场景 当您购买的桌面池规格无法满足业务需要时,可参考本章节变更规格,升级vCPU、内存。 “包年/包月”的桌面池: 同一套餐类型内的规格变更,仅支持升高云桌面规格。例如,当前桌面规格为尊享版8核16G,则只能变更规格为尊享版8核32G。 跨套餐类型间的规格变更,支持相同规格变更以及升高云桌面的规格。例如当前桌面规格为通企业版8核16G,可变更为尊享版8核16G、8核32G。 “按需计费”的桌面池: 同一套餐类型内的规格变更,可根据业务需要,升高或降低云桌面规格。例如,当前桌面规格为尊享版8核16G,则可变更规格为尊享版8核32G,或者尊享版4核8G等低于8核16G的规格。 跨套餐类型间的规格变更,支持相同规格变更、升高或降低云桌面规格。例如,当前桌面规格为企业版8核16G,则可变更规格为尊享版8核16G、尊享版8核32G,或者尊享版4核8G等低于8核16G的规格。 “包年/包月”的桌面计费模式,不支持降低云桌面规格。 “按需计费”的桌面,可根据业务需要,升高或降低云桌面规格。
  • 创建一个HTTP类型的API 调用创建API分组接口,创建一个API分组。 { "name": "APIGroup_test", "remark": "测试分组" } 您需要指定如下参数: name:API分组的名称 remark:对于此API分组的描述信息 调用创建API接口,创建一个HTTP类型API。 { "auth_type": "APP", "backend_api": { "req_method": "GET", "req_protocol": "HTTP", "req_uri": "/test/benchmark", "timeout": 1000, "url_domain": "xx.xx.xx.93:12346" }, "backend_type": "HTTP", "group_id": "2b89e73458******98a828c5eca3b6c3", "name": "test", "req_method": "GET", "req_uri": "/test", "type": 1, "result_normal_sample": "hello world!" } 您需要指定如下参数: auth_type:API认证方式 backend_api:后端服务的参数 req_method:接口调用方式 req_protocol:后端服务的请求协议 req_uri:后端服务的请求路径 timeout:API网关请求后端服务的超时时间 url_domain:后端服务的地址 不可使用如下预留地址段: 0.0.0.0/8 10.0.0.0/8 100.125.0.0/16 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.0.0.0/24 192.0.2.0/24 192.88.99.0/24 192.168.0.0/16 198.18.0.0/15 198.51.100.0/24 203.0.113.0/24 224.0.0.0/4 240.0.0.0/4 255.255.255.255/32 backend_type:后端服务的类型 group_id:API所属的分组编号,获取方式请参见查询分组列表 name:API的名称 req_method:API的请求方式 req_uri:API的访问地址 type:API类型,1表示公有API,2表示私有API result_normal_sample:正常响应示例,描述API的正常返回信息 API创建完后,您可以在API网关的管理控制台查看到该API。
  • 共享版API概览 API网关共享版接口的分类与说明如表1所示。 表1 共享版API概览 类型 说明 API分组管理 包括API分组的创建、修改、删除和查询等接口。 API管理 包括API的创建、修改、删除、发布、下线和查询等接口。 APP管理 包括APP的创建、修改、删除、重置密钥和查询等接口。 APP授权管理 包括授权、解除授权、查询授权关系等接口。 环境管理 包括环境的创建、修改、删除和查询接口。 环境变量管理 包括环境变量的创建、删除和查询等接口。 流控策略管理 包括流控策略的创建、修改、删除和查询等接口。 API绑定流控策略 包括流控策略的查询、绑定和解除绑定等接口。 设置特殊流控 包括特殊流控的创建、修改、删除和查询接口。 ACL策略管理 包括黑白名单的创建、修改、删除和查看等接口。 API绑定ACL策略 包括查询API绑定ACL策略列表、查看ACL策略绑定/未绑定API列表和解除已绑定的API接口。 云商店订购信息查询 包括查询已购买的API分组列表、查询分组详情和API列表接口。 配置管理 包括配置对象模型和查询租户配置详情接口。 概要查询 包括概要信息的查询接口。 签名密钥管理 包括签名密钥的创建、修改、删除和查询接口。 签名密钥绑定关系管理 包括签名密钥的绑定和解除绑定接口,查询签名密钥绑定/未绑定API列表接口。 域名 管理 包括域名的绑定、解绑和证书的绑定、删除接口。 VPC通道管理 包括创建VPC通道、更新VPC通道、删除VPC通道、查看VPC通道详情和列表、添加和删除云服务器、查看云服务器列表。 监控信息查询 包括API/API分组的统计信息查询接口。 OpenAPI接口 导出租户发布分组到指定环境的Swagger API。 自定义认证管理 包括自定义认证的创建、修改、删除,查看自定义认证详情,查询自定义认证列表。 父主题: API概览
  • 修改配置信息 为了方便,下文分生产与消费两个配置文件介绍。如果ROMA Connect实例开启了SASL认证,在Java客户端的配置文件中必须配置涉及SASL认证的相关信息,否则无法连接。如果没有使用SASL认证,请注释掉相关配置。 生产消息配置文件(对应生产消息代码中的mqs.sdk.producer.properties文件) 以下粗体部分为不同MQS特有的信息,必须修改。客户端其他参数,可以自主添加。 #Topic名称在具体的生产与消费代码中。 ####################### #举例:bootstrap.servers=192.168.0.196:9095,192.168.0.196:9096,192.168.0.196:9094 bootstrap.servers=ip1:port1,ip2:port2,ip3:port3 #发送确认参数 acks=all #键的序列化方式 key.serializer=org.apache.kafka.common.serialization.StringSerializer #值的序列化方式 value.serializer=org.apache.kafka.common.serialization.StringSerializer #producer可以用来缓存数据的内存大小 buffer.memory=33554432 #重试次数 retries=0 ####################### #如果不使用SASL认证,以下参数请注释掉。 ####################### #设置用户名和密码 sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="username" \ password="password"; #SASL鉴权方式 sasl.mechanism=PLAIN #加密协议,目前支持SASL_SSL协议 security.protocol=SASL_SSL #ssl truststore文件的位置 ssl.truststore.location=E:\\temp\\client.truststore.jks #ssl truststore文件的密码,固定,请勿修改。配置此密码是为了访问Java生成的jks文件。 ssl.truststore.password=dms@kafka ssl.endpoint.identification.algorithm= 示例代码中的参数说明,可参考获取MQS连接信息获取参数值。 bootstrap.servers:MQS连接地址和端口。 username和password:开启SASL_SSL认证时所使用的用户名和密码。 ssl.truststore.location:开启SASL_SSL认证时所使用的客户端证书。 消费消息配置文件(对应消费消息代码中的mqs.sdk.consumer.properties文件) 以下粗体部分为不同MQS特有的信息,必须修改。客户端其他参数,可以自主添加。 #Topic名称在具体的生产与消费代码中。 ####################### #举例:bootstrap.servers=192.168.0.196:9095,192.168.0.196:9096,192.168.0.196:9094 bootstrap.servers=ip1:port1,ip2:port2,ip3:port3 #用来唯一标识consumer进程所在组的字符串,请您自行设定。 #如果设置同样的group id,表示这些processes都是属于同一个consumer group group.id=1 #键的序列化方式 key.deserializer=org.apache.kafka.common.serialization.StringDeserializer #值的序列化方式 value.deserializer=org.apache.kafka.common.serialization.StringDeserializer #偏移量的方式 auto.offset.reset=earliest ####################### #如果不使用SASL认证,以下参数请注释掉。 ####################### #设置jaas账号和密码,通过控制台设置 sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="username" \ password="password"; #SASL鉴权方式 sasl.mechanism=PLAIN #加密协议,目前支持SASL_SSL协议 security.protocol=SASL_SSL #ssl truststore文件的位置 ssl.truststore.location=E:\\temp\\client.truststore.jks #ssl truststore文件的密码,配置此密码是为了访问Java生成的jks文件。 ssl.truststore.password=dms@kafka ssl.endpoint.identification.algorithm= 示例代码中的参数说明,可参考获取MQS连接信息获取参数值。 bootstrap.servers:MQS连接地址和端口。 group.id:消费组名称。根据业务需要,自定义消费组名称,如果设置的消费组不存在,系统会自动创建。 username和password:开启SASL_SSL认证时所使用的用户名和密码。 ssl.truststore.location:开启SASL_SSL认证时所使用的客户端证书。
  • 操作场景 当您使用Token认证方式完成认证鉴权时,需要获取用户Token并在调用接口时增加“X-Auth-Token”到业务接口请求消息头中。 调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。 Token认证:通过Token认证调用请求。 AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)对调用请求内容进行签名认证。 Site实例中不支持 IAM 认证开发。
  • 调用接口步骤 获取Token 。 请参考《 统一身份认证 服务 API参考》的“获取用户Token”接口,获取Token。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 请求内容示例如下: POST https://{iam_endpoint}/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "id": "xxxxxxxx" } } } } 其中: {iam_endpoint}请参见地区和终端节点获取。 username为用户名。 domainname为用户所属的账号名称。 ********为用户登录密码。 xxxxxxxx为项目ID。 项目ID可以在管理控制台上,单击用户名,在下拉列表中单击“我的凭证”,查看“项目ID”。 调用业务接口,在请求消息头中增加“X-Auth-Token”,“X-Auth-Token”的取值为1中获取的Token。
  • 准备开发环境 安装开发工具 请根据所使用语言选择适合的开发工具。 安装2018.3.5或以上版本的IntelliJ IDEA,安装包请至IntelliJ IDEA官方网站下载。 安装2019 version 16.8.4及以上版本的Visual Studio,安装包请至Visual Studio官方网站下载。 安装开发语言环境 Java:安装1.8.111或以上版本的Java Development Kit,安装包请至Oracle官方下载页面下载。 Python:安装2.7或3.X版本的Python安装包,安装包请至Python官方下载页面下载。
  • 准备开发环境 安装开发工具 请根据所使用语言选择适合的开发工具。 安装2018.3.5或以上版本的IntelliJ IDEA,安装包请至IntelliJ IDEA官方网站下载。 安装3.0.3及以上版本Apache Maven,安装包请至Maven官方下载页面下载。 安装2019 version 16.8.4及以上版本的Visual Studio,安装包请至Visual Studio官方网站下载。 安装开发语言环境 Java:安装1.8.111或以上版本的Java Development Kit,安装包请至Oracle官方下载页面下载。 Python:安装2.7或3.X版本的Python,安装包请至Python官方下载页面下载。 Go:安装1.14及以上版本的Go,安装包请至Go官方下载页面下载。 C#:安装6.0及以上版本的.NET,安装包请至.NET官方下载页面下载。
  • 配置设备连接信息 解压Demo压缩包,在“src”目录的底层路径下找到DeviceConnectDemo.java文件。 使用Java编辑工具打开这个文件,编辑设备连接的信息。运行成功后,在“设备管理”页面可以看到在线设备状态。 Demo工程中依赖的软件包在lib目录下,使用Demo时需要将demo的lib目录设置为当前工程的lib目录。 // 设备连接地址,格式为:tcp://ip:port final String host = ""; // 设备客户端ID final String clientId = ""; // 示例仅用作测试或示意,设备认证的用户名为敏感信息,请勿硬编码使用 final String userName = ""; // 示例仅用作测试或示意,设备认证的密码为敏感信息,请勿硬编码使用 final String password = ""; // 设备Publish权限的Topic final String pubTopic = ""; // 设备Subscribe权限的Topic final String subTopic = ""; // 设备发送的消息内容 final String payload = "hello world.";
  • 自定义后端开发要求 函数后端开发要求: 仅支持使用JavaScript编写函数,JavaScript的运行采用Java Nashorn的运行标准,支持ECMAScript Edition 5.1规范。 函数后端支持的脚本大小最大为32KB。 数据后端开发要求: 若数据后端执行语句查询获取的数据量较大,建议携带offset和limit参数进行分页,避免因响应数据太大导致响应超时。使用方式如下: select * from table01 limit '${limit}' offset ${offset} 其中offset和limit参数key在后端服务请求的Headers、Parameters或Body中传递。 不建议开启结果分页选项,结果分页当前仅支持2000条以内数据的分页。 数据后端支持的执行语句大小最大为32KB。
  • API调用认证开发要求 开发工具版本要求: IntelliJ IDEA:2018.3.5或以上版本。 Eclipse:3.6.0或以上版本。 Visual Studio:2019 version 16.8.4或以上版本。 开发语言环境版本要求: Java:1.8.111或以上版本的Java Development Kit。 Go:1.14及以上版本的Go安装包。 Python:2.7或3.X版本的Python安装包。 JavaScript:15.10.0及以上版本的Nodejs安装包。 PHP:8.0.3及以上版本的PHP安装包。 Android:4.1.2及以上版本的Android Studio。 浏览器版本要求:Chrome 89.0或以上版本。 SDK签名限制: 使用SDK对API请求签名时,仅支持对Body体为12M及以下的请求进行签名。 发送API请求时,SDK会将当前时间置于HTTP的X-Sdk-Date头,将签名信息置于Authorization头。签名只在一个有限的时间内是有效的,超时即无效。 ROMA Connect除了校验X-Sdk-Date的时间格式外,还会校验该时间值与收到请求的时间差,如果时间差超过15分钟,ROMA Connect将拒绝请求。因此,客户端须注意本地与NTP服务器的时间同步,避免请求消息头X-Sdk-Date的值出现较大误差。
  • 后端服务签名校验开发要求 开发工具版本要求: IntelliJ IDEA:2018.3.5或以上版本。 Eclipse:3.6.0或以上版本。 Visual Studio:2019 version 16.8.4或以上版本。 开发语言环境版本要求: Java:1.8.111或以上版本的Java Development Kit。 Python:2.7或3.X版本的Python安装包。 SDK使用限制: Java SDK仅支持hmac和basic类型的后端服务签名。 Python SDK仅支持hmac类型的后端服务签名。 C# SDK仅支持hmac类型的后端服务签名。
  • 准备开发环境 安装开发工具 请根据所使用语言选择适合的开发工具。 安装2018.3.5或以上版本的IntelliJ IDEA,安装包请至IntelliJ IDEA官方网站下载。 安装2019 version 16.8.4及以上版本的Visual Studio,安装包请至Visual Studio官方网站下载。 安装开发语言环境 Java:安装1.8.111或以上版本的Java Development Kit,安装包请至Oracle官方下载页面下载。 Go:安装1.14及以上版本的Go安装包,安装包请至Go官方下载页面下载。 Python:安装2.7或3.X版本的Python安装包,安装包请至Python官方下载页面下载。 JavaScript:安装15.10.0及以上版本的Nodejs安装包,安装包请至Nodejs官方下载页面下载。 PHP:安装8.0.3及以上版本的PHP安装包,安装包请至PHP官方下载页面下载。 Android:安装4.1.2及以上版本的Android Studio,安装包请至Android Studio官方网站下载。
  • 开发规范 开发工具版本要求: IntelliJ IDEA:2018.3.5或以上版本。 Eclipse:3.6.0或以上版本。 Visual Studio:2019 version 16.8.4或以上版本。 开发语言环境版本要求: Java:1.8.111或以上版本的Java Development Kit。 Python:2.7或3.X版本的Python。 Go:1.14及以上版本的Go。 C#:6.0及以上版本的.NET。 客户端版本使用建议: ROMA Connect的Kafka版本 Kafka客户端建议版本 1.1.0 Java:1.1.0及以上版本 Python:2.0.1及以上版本 Go:1.8.2及以上版本 C#:1.5.2及以上版本 2.7 Java:2.7.2及以上版本 Python:2.0.1及以上版本 Go:1.8.2及以上版本 C#:1.5.2及以上版本 客户端开发和配置建议: 请参见客户端使用建议和客户端参数配置建议。 父主题: 开发说明
  • 响应参数 状态码: 202 表3 响应Body参数 参数 参数类型 描述 job_submit_result JobSubmitResult object 作业执行结果。 表4 JobSubmitResult 参数 参数类型 描述 job_id String 作业ID。 state String 作业提交状态。 枚举值: COMPLETE:作业提交完成。 FAILED:作业提交失败。 状态码: 500 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 202 新增并执行作业 { "job_submit_result" : { "job_id" : "44b37a20-ffe8-42b1-b42b-78a5978d7e40", "state" : "COMPLETE" } } 状态码: 500 新增并执行作业失败 { "job_submit_result" : { "error_msg" : "不能提交Hive相关作业", "error_code" : "0168" } }
  • 请求示例 新增一个MapReduce作业 POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/job-executions { "job_name" : "MapReduceTest", "job_type" : "MapReduce", "arguments" : [ "obs://obs-test/program/hadoop-mapreduce-examples-x.x.x.jar", "wordcount", "obs://obs-test/input/", "obs://obs-test/job/mapreduce/output" ], "properties" : { "fs.obs.endpoint" : "obs endpoint", "fs.obs.access.key" : "xxx", "fs.obs.secret.key" : "yyy" } } 新增一个SparkSubmit作业 POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/job-executions { "job_name" : "SparkSubmitTest", "job_type" : "SparkSubmit", "arguments" : [ "--master", "yarn", "--deploy-mode", "cluster", "--py-files", "obs://obs-test/a.py", "--conf", "spark.yarn.appMasterEnv.PYTHONPATH=/tmp:$PYTHONPATH", "--conf", "spark.yarn.appMasterEnv.aaa=aaaa", "--conf", "spark.executorEnv.aaa=executoraaa", "--properties-file", "obs://obs-test/test-spark.conf", "obs://obs-test/pi.py", "100000" ], "properties" : { "fs.obs.access.key" : "xxx", "fs.obs.secret.key" : "yyy" } } 新增一个HiveScript作业 POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/job-executions { "job_name" : "HiveScriptTest", "job_type" : "HiveScript", "arguments" : [ "obs://obs-test/sql/test_script.sql" ], "properties" : { "fs.obs.endpoint" : "obs endpoint", "fs.obs.access.key" : "xxx", "fs.obs.secret.key" : "yyy" } } 新建一个HiveSql作业 POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/job-executions { "job_name" : "HiveSqlTest", "job_type" : "HiveSql", "arguments" : [ "DROP TABLE IF EXISTS src_wordcount;\ncreate external table src_wordcount(line string) row format delimited fields terminated by \"\\n\" stored as textfile location \"obs://donotdel-gxc/input/\";\ninsert into src_wordcount values(\"v1\")" ], "properties" : { "fs.obs.endpoint" : "obs endpoint", "fs.obs.access.key" : "xxx", "fs.obs.secret.key" : "yyy" } } 新建一个DistCp作业 POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/job-executions { "job_name" : "DistCpTest", "job_type" : "DistCp", "arguments" : [ "obs://obs-test/DistcpJob/", "/user/test/sparksql/" ], "properties" : { "fs.obs.endpoint" : "obs endpoint", "fs.obs.access.key" : "xxx", "fs.obs.secret.key" : "yyy" } } 新建一个SparkScript作业 POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/job-executions { "job_type" : "SparkSql", "job_name" : "SparkScriptTest", "arguments" : [ "op-key1", "op-value1", "op-key2", "op-value2", "obs://obs-test/sql/test_script.sql" ], "properties" : { "fs.obs.access.key" : "xxx", "fs.obs.secret.key" : "yyy" } } 新建一个SparkSql作业 POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/job-executions { "job_type" : "SparkSql", "job_name" : "SparkSqlTest", "arguments" : [ "op-key1", "op-value1", "op-key2", "op-value2", "create table student_info3 (id string,name string,gender string,age int,addr string);" ], "properties" : { "fs.obs.access.key" : "xxx", "fs.obs.secret.key" : "yyy" } } 新建一个Flink作业 POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/job-executions { "job_name" : "flinkTest", "job_type" : "Flink", "arguments" : [ "run", "-d", "-ynm", "testExcutorejobhdfsbatch", "-m", "yarn-cluster", "hdfs://test/examples/batch/WordCount.jar" ], "properties" : { "fs.obs.endpoint" : "obs endpoint", "fs.obs.access.key" : "xxx", "fs.obs.secret.key" : "yyy" } } 新增一个SparkPython作业(该类型作业将转换为SparkSubmit类型提交, MRS 控制台界面的作业类型展示为SparkSubmit,通过接口查询作业列表信息时作业类型请选择SparkSubmit。) POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/job-executions { "job_type" : "SparkPython", "job_name" : "SparkPythonTest", "arguments" : [ "--master", "yarn", "--deploy-mode", "cluster", "--py-files", "obs://obs-test/a.py", "--conf", "spark.yarn.appMasterEnv.PYTHONPATH=/tmp:$PYTHONPATH", "--conf", "spark.yarn.appMasterEnv.aaa=aaaa", "--conf", "spark.executorEnv.aaa=executoraaa", "--properties-file", "obs://obs-test/test-spark.conf", "obs://obs-test/pi.py", 100000 ], "properties" : { "fs.obs.access.key" : "xxx", "fs.obs.secret.key" : "yyy" } }
  • 请求示例 创建一个版本号为MRS 3.1.0的自定义管控合设集群,并提交一个作业类型为HiveScript的作业。 POST /v2/{project_id}/run-job-flow { "cluster_version" : "MRS 3.1.0", "cluster_name" : "mrs_heshe_dm", "cluster_type" : "CUSTOM", "charge_info" : { "charge_mode" : "postPaid" }, "region" : "", "availability_zone" : "", "vpc_name" : "vpc-37cd", "subnet_id" : "1f8c5ca6-1f66-4096-bb00-baf175954f6e", "subnet_name" : "subnet", "components" : "Hadoop,Spark2x,HBase,Hive,Hue,Loader,Kafka,Storm,Flume,Flink,Oozie,Ranger,Tez", "safe_mode" : "KERBEROS", "manager_admin_password" : "your password", "login_mode" : "PASSWORD", "node_root_password" : "your password", "mrs_ecs_default_agency" : "MRS_E CS _DEFAULT_AGENCY", "template_id" : "mgmt_control_combined_v2", "log_collection" : 1, "tags" : [ { "key" : "tag1", "value" : "111" }, { "key" : "tag2", "value" : "222" } ], "node_groups" : [ { "group_name" : "master_node_default_group", "node_num" : 3, "node_size" : "Sit3.4xlarge.4.linux.bigdata", "root_volume" : { "type" : "SAS", "size" : 480 }, "data_volume" : { "type" : "SAS", "size" : 600 }, "data_volume_count" : 1, "assigned_roles" : [ " OMS Server:1,2", "SlapdServer:1,2", "KerberosServer:1,2", "KerberosAdmin:1,2", "quorumpeer:1,2,3", "NameNode:2,3", "Zkfc:2,3", "JournalNode:1,2,3", "ResourceManager:2,3", "JobHistoryServer:2,3", "DBServer:1,3", "Hue:1,3", "LoaderServer:1,3", "MetaStore:1,2,3", "WebHCat:1,2,3", "HiveServer:1,2,3", "HMaster:2,3", "MonitorServer:1,2", "Nimbus:1,2", "UI:1,2", "JD BCS erver2x:1,2,3", "JobHistory2x:2,3", "SparkResource2x:1,2,3", "oozie:2,3", "LoadBalancer:2,3", "TezUI:1,3", "TimelineServer:3", "RangerAdmin:1,2", "UserSync:2", "TagSync:2", "KerberosClient", "SlapdClient", "meta", "HSConsole:2,3", "FlinkResource:1,2,3", "DataNode:1,2,3", "NodeManager:1,2,3", "IndexServer2x:1,2", "ThriftServer:1,2,3", "RegionServer:1,2,3", "ThriftServer1:1,2,3", "RESTServer:1,2,3", "Broker:1,2,3", "Supervisor:1,2,3", "Logviewer:1,2,3", "Flume:1,2,3", "HSBroker:1,2,3" ] }, { "group_name" : "node_group_1", "node_num" : 3, "node_size" : "Sit3.4xlarge.4.linux.bigdata", "root_volume" : { "type" : "SAS", "size" : 480 }, "data_volume" : { "type" : "SAS", "size" : 600 }, "data_volume_count" : 1, "assigned_roles" : [ "DataNode", "NodeManager", "RegionServer", "Flume:1", "Broker", "Supervisor", "Logviewer", "HBaseIndexer", "KerberosClient", "SlapdClient", "meta", "HSBroker:1,2", "ThriftServer", "ThriftServer1", "RESTServer", "FlinkResource" ] }, { "group_name" : "node_group_2", "node_num" : 1, "node_size" : "Sit3.4xlarge.4.linux.bigdata", "root_volume" : { "type" : "SAS", "size" : 480 }, "data_volume" : { "type" : "SAS", "size" : 600 }, "data_volume_count" : 1, "assigned_roles" : [ "NodeManager", "KerberosClient", "SlapdClient", "meta", "FlinkResource" ] } ], "log_uri" : "obs://bucketTest/logs", "delete_when_no_steps" : true, "steps" : [ { "job_execution" : { "job_name" : "import_file", "job_type" : "DistCp", "arguments" : [ "obs://test/test.sql", "/user/hive/input" ] } }, { "job_execution" : { "job_name" : "hive_test", "job_type" : "HiveScript", "arguments" : [ "obs://test/hive/sql/HiveScript.sql" ] } } ] }
  • 响应示例 状态码: 200 查询用户(组)与IAM委托的映射关系成功 { "agency_mappings" : [ { "agency" : "agency01", "identifier_type" : "User", "identifiers" : [ "user01" ], "agency_id" : "092adc623c00d2ea4fdac01d4b637f0b" }, { "agency" : "agency02", "identifier_type" : "User", "identifiers" : [ "user02" ], "agency_id" : "065239307e00d3ae4f80c01d4bdafdfd" }, { "agency" : "groupAgency", "identifier_type" : "Group", "identifiers" : [ "group01", "group02", "group03" ], "agency_id" : "08467a446200d5ac4ff9c01d56670c3b" } ] }
  • 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 agency_mappings Array of AgencyMapping objects 用户(组)与委托之间的映射关系详细信息。 表3 AgencyMapping 参数 参数类型 描述 agency String 该映射绑定的IAM委托名称。 identifier_type String 委托类型,分为“User”和“Group”两种。 User表示该映射关系为针对用户的映射,identifiers中填写用户名称列表。 Group表示该映射关系为针对用户组的映射,identifiers中填写用户组名称列表。 identifiers Array of Strings IAM委托映射的用户(组)名称列表。请前往IAM,单击“用户(组)”按钮,获取用户(组)名称列表。 agency_id String 该映射关系绑定的委托的唯一标识码。请前往IAM,单击“委托”按钮,进入委托页面,将鼠标放置委托名称上,在弹窗中获取委托唯一标识码。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 请求示例 批量删除作业请求示例 POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/job-executions/batch-delete { "job_id_list" : [ "48c45725-b699-4aa9-9bfd-f7ff87eb6fe8", "af846665-dd32-4349-a8b5-561e109c383c" ] }
共100000条