日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

樣例代碼

本文介紹如何快速使用EMR Python SDK完成常見操作,例如創建集群、查詢集群列表和擴縮容節點組等。

說明
  • 請確保在代碼運行環境設置了環境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。具體配置方法,請參見配置方案。

  • 本文為您介紹Python 2的樣例代碼。如果您使用的是Python 3,則請參見常用API教程下的示例。

創建集群

#!/usr/bin/python
from aliyunsdkcore import client
from aliyunsdkemr.request.v20160408 import CreateClusterRequest
clt = client.AcsClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),'cn-hangzhou') # set accessId and accessKey
request = CreateClusterRequest.CreateClusterRequest()
request.set_Name("pydemo")
request.set_ZoneId("cn-hangzhou-b")
request.set_LogEnable(False)
request.set_SecurityGroupId("sg-********")
request.set_IsOpenPublicIp(True)
request.set_ChargeType("PostPaid")
request.set_EmrVer("EMR-1.3.0")
request.set_ClusterType("HADOOP")
request.set_IoOptimized(True)
request.set_InstanceGeneration("ecs-2")
# set EcsOrder
request.add_query_param('EcsOrder.1.NodeCount', '1')
request.add_query_param('EcsOrder.1.NodeType', 'MASTER')
request.add_query_param('EcsOrder.1.InstanceType', 'ecs.n1.large')
request.add_query_param('EcsOrder.1.DiskType', 'CLOUD_EFFICIENCY')
request.add_query_param('EcsOrder.1.DiskCapacity', '80')
request.add_query_param('EcsOrder.1.DiskCount', '1')
request.add_query_param('EcsOrder.1.Index', '1')
request.add_query_param('EcsOrder.2.NodeCount', '3')
request.add_query_param('EcsOrder.2.NodeType', 'CORE')
request.add_query_param('EcsOrder.2.InstanceType', 'ecs.n1.large')
request.add_query_param('EcsOrder.2.DiskType', 'CLOUD_EFFICIENCY')
request.add_query_param('EcsOrder.2.DiskCapacity', '80')
request.add_query_param('EcsOrder.2.DiskCount', '4')
request.add_query_param('EcsOrder.2.Index', '2')
request.set_accept_format('json')
result = clt.do_action(request)
print result
重要

由于阿里云產品眾多,所有SDK的生成是通過程序自動生成的,所以部分SDK的使用比較不方便。在目前Python SDK中,對入參是List(不管是基本類型的List還是復雜對象的List)支持不好,需要特殊處理。

  • 如果是基本類型的List入參,請參見查看集群列表示例代碼中對StatusList參數的設置。

  • 如果是復雜對象的List入參,請參見創建集群示例代碼中對EcsOrder參數的設置。

  • 其他List入參,例如BootstrapAction參數,推薦您使用Java SDK,使用Java SDK會更加方便。

其他接口操作類似,具體請參見API概覽。

查看集群列表

#!/usr/bin/python
from aliyunsdkcore import client
from aliyunsdkemr.request.v20160408 import ListClustersRequest
clt = client.AcsClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),'cn-hangzhou') # set accessId and accessKey
request = ListClustersRequest.ListClustersRequest()
request.set_accept_format('xml') # xml or json
# 設置狀態過濾,只查找RUNNING和IDLE的集群,注意該參數為可選參數,可以不設置。
request.add_query_param('StatusList.1', 'RUNNING')
request.add_query_param('StatusList.2', 'IDLE')
result = clt.do_action(request)
print result

擴容節點組

通過調整指定節點組數量擴容節點組。

#!/usr/bin/python
from aliyunsdkcore import client
from aliyunsdkemr.request.v20160408 import ResizeClusterV2Request

clt = client.AcsClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),'cn-hangzhou')
request = ResizeClusterV2Request.ResizeClusterV2Request()
request.set_accept_format('json')

# 集群ID
request.set_ClusterId("C-01A1F4A********")
# 待擴容節點組信息,支持同時對多個節點組擴容從1開始計數。
request.add_query_param('HostGroup.1.HostGroupId', 'G-F0D0661E0A6E****')
request.add_query_param('HostGroup.1.NodeCount', 1)
#request.add_query_param('HostGroup.2.HostGroupId', 'G-F0D0661E0A6****')
#request.add_query_param('HostGroup.2.NodeCount', 3)

result = clt.do_action(request)
print(result)

縮容節點組

您可以選擇通過調整指定節點組數量縮容節點組或通過實例ID縮容節點組。

通過調整指定節點組數量縮容節點組

重要

使用該特性,您需要通過以下命令升級您的SDK版本。

sudo pip install aliyun-python-sdk-emr --upgrade
#!/usr/bin/python
from aliyunsdkcore import client
from aliyunsdkemr.request.v20160408 import ReleaseClusterHostGroupRequest

clt = client.AcsClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),'cn-hangzhou')
request = ReleaseClusterHostGroupRequest.ReleaseClusterHostGroupRequest()
request.set_accept_format('json')

# 集群ID。
request.set_ClusterId("C-01A1F4A********")
# 節點組ID,可通過ListClusterHostGroup接口獲取節點組ID。
request.set_HostGroupId("G-D11D3E*******")

# 縮容數量。
request.set_ReleaseNumber(1)
# 可開啟YARN Decommission,目前只允許對HADOOP集群的Task組開啟。
request.set_EnableGracefulDecommission(True)
request.set_DecommissionTimeout(60)

result = clt.do_action(request)
print(result)

如果執行上面代碼返回如下異常信息,則需要修改相關的配置信息。異常信息

  • 控制臺方式:您可以在EMR控制臺YARN服務的配置頁面,搜索參數yarn.resourcemanager.nodes.exclude-path,修改參數值為/etc/ecm/hadoop-conf/yarn-exclude.xml。然后配置并部署配置,使配置生效。

  • 代碼方式:您也可以通過以下代碼完成修改。

    request = ModifyClusterServiceConfigRequest.ModifyClusterServiceConfigRequest()
    request.set_accept_format('json') # 返回結果格式為JSON。
    request.set_ClusterId("C-01A1F4A********")
    request.set_ServiceName("YARN")
    request.set_ConfigParams('{"yarn-site":{"yarn.resourcemanager.nodes.exclude-path":"/etc/ecm/hadoop-conf/yarn-exclude.xml"}}')
    request.set_Comment('for decommission gracefully')
    request.set_RefreshHostConfig(True)
    result = clt.do_action(request)
    print(result)

通過實例ID縮容節點組

#!/usr/bin/python
from aliyunsdkcore import client
from aliyunsdkemr.request.v20160408 import ReleaseClusterHostGroupRequest

clt = client.AcsClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),'cn-hangzhou')
request = ReleaseClusterHostGroupRequest.ReleaseClusterHostGroupRequest()
request.set_accept_format('json')

# 集群ID。
request.set_ClusterId("C-01A1F4A********")
# 節點組ID,可通過ListClusterHostGroup接口獲取節點組ID。
request.set_HostGroupId("G-D11D3E*******")

# 可以指定釋放某些ECS,其與ReleaseNumber同時設置時以InstanceIdList為準。
request.set_InstanceIdList(["i-1**", "i-2**"])

# 可開啟YARN Decommission,目前只允許對HADOOP集群的Task組開啟。
request.set_EnableGracefulDecommission(True)
# 優雅下線超時時長,單位為秒。不填寫時默認超時時間為3600s。
request.set_DecommissionTimeout(60)
result = clt.do_action(request)
print(result)