ALIYUN::EMR::Cluster類型用於建立一個E-MapReduce叢集。
ALIYUN::EMR::Cluster支援基於E-MapReduce產品的舊版API,支援舊版HADOOP、KAFKA 、DRUID 、ZOOKEEPER、DATA_SCIENCE、GATEWAY等早期的叢集類型。ALIYUN::EMR::Cluster2支援基於E-MapReduce產品的新版API(2021-03-20),支援DATALAKE、OLAP、DATAFLOW、DATASERVING等新的叢集類型,如果沒有早期叢集類型需求,建議使用ALIYUN::EMR::Cluster2資源建立EMR叢集。
文法
{
"Type": "ALIYUN::EMR::Cluster",
"Properties": {
"SshEnable": Boolean,
"EasEnable": Boolean,
"WhiteListType": String,
"InitCustomHiveMetaDB": Boolean,
"IoOptimized": Boolean,
"HostGroup": List,
"Config": List,
"KeyPairName": String,
"VpcId": String,
"AutoRenew": Boolean,
"RelatedClusterId": String,
"BootstrapAction": List,
"InstanceGeneration": String,
"DepositType": String,
"VSwitchId": String,
"NetType": String,
"UserDefinedEmrEcsRole": String,
"Name": String,
"ClusterType": String,
"ZoneId": String,
"IsOpenPublicIp": Boolean,
"OptionSoftWareList": List,
"Configurations": String,
"MasterPwd": String,
"MachineType": String,
"EmrVer": String,
"SecurityGroupName": String,
"MetaStoreConf": String,
"SecurityGroupId": String,
"LogPath": String,
"Period": Integer,
"HighAvailabilityEnable": Boolean,
"UseCustomHiveMetaDB": Boolean,
"UserInfo": List,
"ChargeType": String,
"MetaStoreType": String,
"AuthorizeContent": String,
"UseLocalMetaDb": Boolean,
"ClickHouseConf": Map,
"ResourceGroupId": String,
"Tags": List
}
}屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
SshEnable | Boolean | 否 | 否 | 是否開啟SSH。 | 取值:
|
EasEnable | Boolean | 否 | 否 | 是否為高安全叢集。 | 取值:
|
WhiteListType | String | 否 | 否 | 白名單類型。 | 取值:
|
InitCustomHiveMetaDB | Boolean | 否 | 否 | 保留欄位,無需填寫。 | 無 |
IoOptimized | Boolean | 否 | 否 | 是否開啟IO最佳化。 | 取值:
|
HostGroup | List | 是 | 否 | 機器組。 | 更多資訊,請參見HostGroup屬性。 |
Config | List | 否 | 否 | 自訂配置項。 | 更多資訊,請參見Config屬性。 |
KeyPairName | String | 否 | 否 | 金鑰組名稱。 | 無 |
VpcId | String | 否 | 否 | 專用網路ID。 | 無 |
AutoRenew | Boolean | 否 | 否 | 訂用帳戶叢集是否自動續約。 | 取值:
|
RelatedClusterId | String | 否 | 否 | Gateway叢集關聯的主叢集ID。 | 當ClusterType取值為GATEWAY時,該參數有效。 |
BootstrapAction | List | 否 | 否 | 引導操作。 | 更多資訊,請參見BootstrapAction屬性。 |
InstanceGeneration | String | 否 | 否 | ECS執行個體規格類型系列。 | 無 |
VSwitchId | String | 否 | 否 | 交換器ID。 | 無 |
NetType | String | 是 | 否 | 網路類型。 | 取值:VPC,表示專用網路。 |
UserDefinedEmrEcsRole | String | 否 | 否 | 授權給ECS的角色,用於ECS內部訪問OSS等其他阿里雲服務。 | 無 |
Name | String | 是 | 是 | 叢集名稱。 | 長度為1~64個字元,可包含英文字母、漢字、數字、短劃線(-)和底線(_)。 |
ClusterType | String | 是 | 否 | 叢集類型。 | 取值:
|
ZoneId | String | 是 | 否 | 可用性區域ID。 | 無 |
IsOpenPublicIp | Boolean | 否 | 否 | 是否開啟公網IP地址。 | 取值:
|
OptionSoftWareList | List | 否 | 否 | 可選軟體列表。 | 無 |
Configurations | String | 否 | 否 | 保留欄位,無需填寫。 | 無 |
MasterPwd | String | 否 | 否 | Master節點SSH訪問密碼。 | 長度為8~30個字元,需同時包含大寫英文字母、小寫英文字母、數字和特殊符號中任意三項。 |
MachineType | String | 否 | 否 | 機器類型。 | 無 |
EmrVer | String | 是 | 否 | EMR版本。 | 無 |
SecurityGroupName | String | 否 | 否 | 安全性群組名稱。 | 如果不指定安全性群組ID,將使用該名稱建立一個新的安全性群組。 當叢集建立完成後,可以在叢集詳情中查詢建立的安全性群組ID。該安全性群組將會帶有預設的安全性群組策略:入方向只開放22連接埠,出方向開放所有連接埠。 |
DepositType | String | 否 | 否 | 叢集的託管類型。 | 無 |
SecurityGroupId | String | 否 | 否 | 安全性群組ID。 | 若使用已有安全性群組,將給安全性群組增加預設策略:入方向只開放22連接埠,出方向開放所有連接埠。 |
LogPath | String | 否 | 否 | OSS日誌路徑。 | 無 |
Period | Integer | 否 | 否 | 訂用帳戶時間長度。 | 當ChargeType取值為PrePaid時,必須指定該參數。 取值:1、2、3、4、5、6、7、8、9、12、24、36。 單位:月。 |
HighAvailabilityEnable | Boolean | 否 | 否 | 是否開啟高可用叢集。 | 取值:
|
UseCustomHiveMetaDB | Boolean | 否 | 否 | 保留欄位,無需填寫。 | 無 |
UserInfo | List | 否 | 否 | 使用者資訊。 | 更多資訊,請參見UserInfo屬性。 |
ChargeType | String | 是 | 否 | 付費類型。 | 取值:
|
AuthorizeContent | String | 否 | 否 | 保留欄位,無需填寫。 | 無 |
UseLocalMetaDb | Boolean | 是 | 否 | 是否使用叢集內建MySQL作為Hive中繼資料庫。 | 取值:
|
MetaStoreConf | String | 否 | 否 | 中繼資料配置。 | MetaStoreType取值為user_rds時,必須指定該參數。 格式: |
MetaStoreType | String | 否 | 否 | 中繼資料類型。 | 取值:
|
ClickHouseConf | Map | 否 | 否 | ClickHouse叢集配置。 | 無 |
ResourceGroupId | String | 否 | 是 | 資源群組ID。 | 無 |
Tags | List | 否 | 是 | 使用者自訂標籤。 | 更多資訊,請參見Tags屬性。 |
Tags文法
"Tags": [
{
"Value": String,
"Key": String
}
]Tags屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Key | String | 是 | 否 | 標籤鍵。 | 長度為1~128個字元。 不能以 |
Value | String | 否 | 否 | 標籤值。 | 長度為0~128個字元。 不能以 |
HostGroup文法
"HostGroup": [
{
"Comment": String,
"SysDiskType": String,
"DiskCapacity": Integer,
"NodeCount": Integer,
"ClusterId": String,
"DiskCount": Integer,
"CreateType": String,
"DiskType": String,
"AutoRenew": Boolean,
"HostGroupType": String,
"SysDiskCapacity": Integer,
"VSwitchId": String,
"ChargeType": String,
"Period": Integer,
"HostKeyPairName": String,
"HostPassword": String,
"HostGroupId": String,
"InstanceType": String,
"GpuDriver": String,
"HostGroupName": String
}
]HostGroup屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Comment | String | 否 | 否 | 保留欄位,無需填寫。 | 無 |
SysDiskType | String | 是 | 否 | 機器組的系統硬碟類型。 | 取值:
|
DiskCapacity | Integer | 是 | 否 | 機器組的資料盤容量。 | 單位:GB。 |
NodeCount | Integer | 是 | 否 | 機器組節點數。 | 無 |
ClusterId | String | 否 | 否 | 保留欄位,無需填寫。 | 無 |
DiskCount | Integer | 是 | 否 | 機器組的資料盤數量。 | 無 |
CreateType | String | 否 | 否 | 機器組的建立類型。 | 取值:
|
DiskType | String | 是 | 否 | 機器組的資料盤類型。 | 取值:
|
AutoRenew | Boolean | 否 | 否 | 訂用帳戶叢集是否自動續約。 | 取值:
|
HostGroupType | String | 是 | 否 | 機器群組類型。 | 取值:
|
SysDiskCapacity | Integer | 是 | 否 | 機器組的系統硬碟容量。 | 單位:GB。 |
VSwitchId | String | 否 | 否 | 交換器ID。 | 無 |
ChargeType | String | 是 | 否 | 付費類型。 | 取值:
|
Period | Integer | 否 | 否 | 訂用帳戶時間長度。 | 當ChargeType取值為PrePaid時,必須指定該參數。 取值:1、2、3、4、5、6、7、8、9、12、24、36。 單位:月。 |
HostKeyPairName | String | 否 | 否 | 主機群組的金鑰組名稱。 | 當ClusterType取值為GATEWAY時,該參數有效。 |
HostPassword | String | 否 | 否 | 主機的密碼 | 當ClusterType取值為GATEWAY時,該參數有效。 |
HostGroupId | String | 否 | 否 | 保留欄位,無需填寫。 | 無 |
InstanceType | String | 是 | 否 | 執行個體規格。 | 無 |
GpuDriver | String | 否 | 否 | GPU驅動。 | 無 |
HostGroupName | String | 否 | 否 | 機器組名稱。 | 無 |
Config文法
"Config": [
{
"Encrypt": String,
"ConfigKey": String,
"FileName": String,
"ServiceName": String,
"Replace": String,
"ConfigValue": String
}
]Config屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Encrypt | String | 否 | 否 | 保留欄位,無需填寫。 | 無 |
ConfigKey | String | 否 | 否 | 自訂配置項的鍵。 | 無 |
FileName | String | 否 | 否 | 自訂配置項所屬的檔案名稱。 | 無 |
ServiceName | String | 否 | 否 | 自訂配置項的服務名稱。 | 無 |
Replace | String | 否 | 否 | 保留欄位,無需填寫。 | 無 |
ConfigValue | String | 否 | 否 | 自訂配置項的值。 | 無 |
BootstrapAction文法
"BootstrapAction": [
{
"Path": String,
"Name": String,
"Arg": String
}
]BootstrapAction屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Path | String | 否 | 否 | 引導操作指令碼OSS存放路徑。 | 無 |
Name | String | 否 | 否 | 引導操作的名稱。 | 無 |
Arg | String | 否 | 否 | 引導操作的參數。 | 無 |
UserInfo文法
"UserInfo": [
{
"UserName": String,
"Password": String,
"UserId": String
}
]UserInfo屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
UserName | String | 否 | 否 | Knox使用者的使用者名稱。 | 無 |
Password | String | 否 | 否 | Knox使用者的密碼。 | 無 |
UserId | String | 否 | 否 | Knox使用者的RAM使用者ID。 | 無 |
傳回值
Fn::GetAtt
ClusterId:叢集ID。
HostGroups:叢集機器組列表。
MasterNodePubIps:叢集主節點的公用IP列表。
MasterNodeInnerIps:叢集主節點的內部IP列表。
Arn:阿里雲資源名稱。
樣本
ROSTemplateFormatVersion: '2015-09-01'
Description: Test EMR Cluster
Parameters:
VpcId:
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Type: String
Label:
zh-cn: 現有VPC的執行個體ID
en: Existing VPC Instance ID
ZoneId:
AssociationProperty: ALIYUN::ECS::ZoneId
Type: String
Label:
zh-cn: 交換器可用性區域
en: VSwitch Zone ID
VSwitchId:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
AssociationPropertyMetadata:
VpcId: ${VpcId}
ZoneId: ${ZoneId}
Type: String
Label:
zh-cn: 網路交換器ID
en: VSwitch ID
SecurityGroupId:
AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
AssociationPropertyMetadata:
VpcId: ${VpcId}
Type: String
Description:
Label:
zh-cn: 業務安全性群組ID
en: Business Security Group ID
ClusterDiskType:
Type: String
Default: CLOUD_SSD
Resources:
EmrCluster:
Type: ALIYUN::EMR::Cluster
Properties:
UseLocalMetaDb: false
IoOptimized: true
ZoneId:
Ref: ZoneId
VSwitchId:
Ref: VSwitchId
SecurityGroupId:
Ref: SecurityGroupId
HostGroup:
- DiskType: CLOUD_SSD
HostGroupType: MASTER
DiskCount: 1
DiskCapacity: 80
NodeCount: 1
SysDiskType: CLOUD_SSD
ChargeType: PostPaid
VSwitchId:
Ref: VSwitchId
AutoRenew: false
Period: 1
SysDiskCapacity: 120
InstanceType: ecs.g5.xlarge
- DiskType: CLOUD_SSD
HostGroupType: CORE
DiskCount: 4
DiskCapacity: 80
NodeCount: 2
SysDiskType: CLOUD_SSD
ChargeType: PostPaid
VSwitchId:
Ref: VSwitchId
AutoRenew: false
Period: 1
SysDiskCapacity: 120
InstanceType: ecs.g5.xlarge
EmrVer: EMR-3.22.4
ClusterType: HADOOP
Name:
Fn::Join:
- '-'
- - StackId
- Ref: ALIYUN::StackId
MasterPwd: Admin123!
VpcId:
Ref: VpcId
ChargeType: PostPaid
NetType: vpc
Outputs:
ClusterId:
Description: The ID of the cluster.
Value:
Fn::GetAtt:
- EmrCluster
- ClusterId{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Test EMR Cluster",
"Parameters": {
"VpcId": {
"AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
"Type": "String",
"Label": {
"zh-cn": "現有VPC的執行個體ID",
"en": "Existing VPC Instance ID"
}
},
"ZoneId": {
"AssociationProperty": "ALIYUN::ECS::ZoneId",
"Type": "String",
"Label": {
"zh-cn": "交換器可用性區域",
"en": "VSwitch Zone ID"
}
},
"VSwitchId": {
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"AssociationPropertyMetadata": {
"VpcId": "${VpcId}",
"ZoneId": "${ZoneId}"
},
"Type": "String",
"Label": {
"zh-cn": "網路交換器ID",
"en": "VSwitch ID"
}
},
"SecurityGroupId": {
"AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
"AssociationPropertyMetadata": {
"VpcId": "${VpcId}"
},
"Type": "String",
"Description": {
"Label": {
"zh-cn": "業務安全性群組ID",
"en": "Business Security Group ID"
}
},
"ClusterDiskType": {
"Type": "String",
"Default": "CLOUD_SSD"
}
}
},
"Resources": {
"EmrCluster": {
"Type": "ALIYUN::EMR::Cluster",
"Properties": {
"UseLocalMetaDb": false,
"IoOptimized": true,
"ZoneId": {
"Ref": "ZoneId"
},
"VSwitchId": {
"Ref": "VSwitchId"
},
"SecurityGroupId": {
"Ref": "SecurityGroupId"
},
"HostGroup": [
{
"DiskType": "CLOUD_SSD",
"HostGroupType": "MASTER",
"DiskCount": 1,
"DiskCapacity": 80,
"NodeCount": 1,
"SysDiskType": "CLOUD_SSD",
"ChargeType": "PostPaid",
"VSwitchId": {
"Ref": "VSwitchId"
},
"AutoRenew": false,
"Period": 1,
"SysDiskCapacity": 120,
"InstanceType": "ecs.g5.xlarge"
},
{
"DiskType": "CLOUD_SSD",
"HostGroupType": "CORE",
"DiskCount": 4,
"DiskCapacity": 80,
"NodeCount": 2,
"SysDiskType": "CLOUD_SSD",
"ChargeType": "PostPaid",
"VSwitchId": {
"Ref": "VSwitchId"
},
"AutoRenew": false,
"Period": 1,
"SysDiskCapacity": 120,
"InstanceType": "ecs.g5.xlarge"
}
],
"EmrVer": "EMR-3.22.4",
"ClusterType": "HADOOP",
"Name": {
"Fn::Join": [
"-",
[
"StackId",
{
"Ref": "ALIYUN::StackId"
}
]
]
},
"MasterPwd": "Admin123!",
"VpcId": {
"Ref": "VpcId"
},
"ChargeType": "PostPaid",
"NetType": "vpc"
}
}
},
"Outputs": {
"ClusterId": {
"Description": "The ID of the cluster.",
"Value": {
"Fn::GetAtt": [
"EmrCluster",
"ClusterId"
]
}
}
}
}