本文介绍如何通过EMR OpenAPI修改集群的配置。
前提条件
- 已创建集群,详情请参见创建集群。
- 已获取集群ID,详情请参见查看集群列表与详情。
- 已创建AccessKey,详情请参见获取AccessKey。
- 已获取相应的SDK,Java SDK请参见SDK下载,Python SDK请参见安装SDK。
修改集群配置
通过ModifyClusterServiceConfig修改集群配置,包括修改已有配置和新增参数。
- 修改已有配置
参数 类型 是否必选 示例值 描述 RegionId String 是 cn-hangzhou 地域ID。 ClusterId String 是 C-C0D50B0FA24A**** 集群ID。 ServiceName String 是 HDFS 服务名称。可参见服务详细信息。 ConfigParams String 是 {"hdfs-site":{"dfs.namenode.resource.check.interval":"6000"}} 本次修改的具体内容,JSON格式的字符串。 Comment String 否 modify hdfs config 本次修改的备注信息。 代码示例如下。#!/usr/bin/env python #coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkemr.request.v20160408.ModifyClusterServiceConfigRequest import ModifyClusterServiceConfigRequest client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-hangzhou') request = ModifyClusterServiceConfigRequest() request.set_accept_format('json') request.set_ClusterId("C-C0D50B0FA24A****") request.set_ServiceName("HDFS") request.set_ConfigParams("{\"hdfs-site\":{\"dfs.namenode.resource.check.interval\":\"6000\"}}") request.set_Comment("modify hdfs config") response = client.do_action_with_exception(request) # python2: print(response) print(str(response, encoding='utf-8'))
- 新增参数
在一个集群内指定的机器节点上新增参数。
参数 类型 是否必选 示例值 描述 RegionId String 是 cn-hangzhou 地域ID。 ClusterId String 是 C-2FD9050E78C8**** 集群ID。 ServiceName String 是 HDFS 服务名称。可参见服务详细信息。 ConfigParams String 是 {} 表示新增。 Comment String 否 add new config 本次新增的备注信息。 CustomConfigParams String 否 {"hdfs-site":{"newkey":{"Value":"customValue"}}} 自定义配置项的新增改内容。 HostInstanceId String 否 i-bp146tnrkq4tcso2**** 主机实例ID,一般是ECS实例的ID。 代码示例如下。#!/usr/bin/env python #coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkemr.request.v20160408.ModifyClusterServiceConfigRequest import ModifyClusterServiceConfigRequest client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-hangzhou') request = ModifyClusterServiceConfigRequest() request.set_accept_format('json') request.set_ClusterId("C-2FD9050E78C8****") request.set_ServiceName("HDFS") request.set_ConfigParams("{}") request.set_Comment("add new config") request.set_CustomConfigParams("{\"hdfs-site\":{\"newkey\":{\"Value\":\"customValue\"}}}") request.set_HostInstanceId("i-bp146tnrkq4tcso2****") response = client.do_action_with_exception(request) # python2: print(response) print(str(response, encoding='utf-8'))
使集群配置生效
- 服务参数
如果修改的是服务参数,需要重启服务才能使配置生效,可以调用RunClusterServiceAction进行服务的重启,也可以在控制台界面进行重启。
参数 类型 是否必选 示例值 描述 RegionId String 是 cn-hangzhou 地域ID。 ClusterId String 是 C-C0D50B0FA24A**** 集群ID。 ServiceName String 是 HDFS 服务名称。可参见服务详细信息。 ServiceActionName String 是 RESTART Action名。 取值: - START:启动组件。
- RESTART:重启组件。
- STOP:停止组件。
- CONFIGURE:发送配置并更新到指定的节点上。
代码示例如下。#!/usr/bin/env python #coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkemr.request.v20160408.RunClusterServiceActionRequest import RunClusterServiceActionRequest client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-hangzhou') request = RunClusterServiceActionRequest() request.set_accept_format('json') request.set_ClusterId("C-C0D50B0FA24A****") request.set_ServiceName("HDFS") request.set_ServiceActionName("RESTART") response = client.do_action_with_exception(request) # python2: print(response) print(str(response, encoding='utf-8'))
- 客户端参数
如果修改的是客户端参数,将更新后的配置调用RunClusterServiceAction推送到集群上,直接部署即可生效。
参数 类型 是否必选 示例值 描述 RegionId String 是 cn-hangzhou 地域ID。 ClusterId String 是 C-ADB1FDB7AA82**** 集群ID。 ServiceName String 是 HDFS 服务名称。可参见服务详细信息。 ServiceActionName String 是 CONFIGURE Action名。 取值: 代码示例如下。#!/usr/bin/env python #coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkemr.request.v20160408.RunClusterServiceActionRequest import RunClusterServiceActionRequest client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-hangzhou') request = RunClusterServiceActionRequest() request.set_accept_format('json') request.set_ClusterId("C-ADB1FDB7AA82A****") request.set_ServiceName("HDFS") request.set_ServiceActionName("CONFIGURE") response = client.do_action_with_exception(request) # python2: print(response) print(str(response, encoding='utf-8'))
相关OpenAPI
- ModifyClusterServiceConfig:详情请参见修改集群指定服务的配置信息。
- RunClusterServiceAction:详情请参见运行指定操作。
服务详细信息
- 服务列表
SPARK KAFKA HIVE TEZ STORM ZEPPELIN HBASE YARN HDFS PRESTO IMPALA DRUID KNOX KAFKA-MANAGER GANGLIA HUE PHOENIX FLINK RANGER APACHEDS HAS SQOOP PIG ZOOKEEPER OOZIE TENSORFLOW SUPERSET TENSORFLOW-ON-YARN LIVY JUPYTER ANALYTICS-ZOO FLUME SMARTDATA BIGBOOT HIVE-CDH KUDU OPENLDAP TENSORFLOW-ON-SPARK GRAFANA PROMETHEUS ALERTMANAGER CLICKHOUSE
- 服务组件列表
ANALYTICS-ZOO AnalyticsZooPython AnalyticsZooScala GANGLIA GMETAD GMOND HBASE HMaster HRegionServer ThriftServer HDFS KMS HttpFS NameNode DataNode SecondaryNameNode HIVE HiveServer HiveMetaStore IMPALA ImpalaRuntime ImpalaCatalogd ImpalaStatestored Impalad KUDU KuduMaster KuduTserver PRESTO PrestoMaster PrestoWorker RANGER RangerAdmin RangerUserSync RangerPlugin SPARK SparkHistory YARN ResourceManager JobHistory TimeLineServer WebAppProxyServer NodeManager