ALIYUN::EMR::Cluster2类型用于创建EMR集群。
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::Cluster2",
"Properties": {
"Applications": List,
"ResourceGroupId": String,
"ApplicationConfigs": List,
"ClusterType": String,
"NodeGroups": List,
"ReleaseVersion": String,
"BootstrapScripts": List,
"SubscriptionConfig": Map,
"DeployMode": String,
"SecurityMode": String,
"NodeAttributes": Map,
"ClusterName": String,
"PaymentType": String,
"Tags": List
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Applications | List | 是 | 否 | 应用列表。 | 最多添加100个应用。 更多信息,请参见Applications属性。 |
ResourceGroupId | String | 否 | 否 | 资源组ID。 | 无 |
ApplicationConfigs | List | 否 | 否 | 应用配置。 | 最多添加1000个应用配置。 更多信息,请参见ApplicationConfigs属性。 |
ClusterType | String | 是 | 否 | 集群类型。 | 取值:
|
NodeGroups | List | 是 | 否 | 节点组配置数组。 | 最多添加100个节点组配置。 更多信息,请参见NodeGroups属性。 |
ReleaseVersion | String | 是 | 否 | EMR发行版。 | 无 |
BootstrapScripts | List | 否 | 否 | 引导脚本数组。 | 最多添加10个引导脚本数组。 更多信息,请参见BootstrapScripts属性。 |
SubscriptionConfig | Map | 否 | 否 | 预付费配置。 | 当PaymentType取值为Subscription时,本参数必填。 |
DeployMode | String | 否 | 否 | 集群中的应用部署模式。 | 取值:
|
SecurityMode | String | 否 | 否 | 集群Kerberos安全模式。 | 取值:
|
NodeAttributes | Map | 是 | 否 | 节点属性。 | 集群所有ECS节点基础属性。 |
ClusterName | String | 是 | 否 | 集群名称。 | 长度为1~128个字符,必须以大小写字母或中文开头,不能以 |
PaymentType | String | 否 | 否 | 付费类型。 | 取值:
|
Tags | List | 否 | 否 | 标签。 | 最多添加20个自定义标签。 更多信息,请参见Tags属性。 |
Applications语法
"Applications": [
{
"ApplicationName": String
}
]
Applications属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
ApplicationName | String | 是 | 否 | 应用名称。 | 无 |
ApplicationConfigs语法
"ApplicationConfigs": [
{
"ConfigFileName": String,
"ApplicationName": String,
"ConfigItemKey": String,
"NodeGroupName": String,
"NodeGroupId": String,
"ConfigScope": String,
"ConfigItemValue": String
}
]
ApplicationConfigs属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
ConfigFileName | String | 否 | 否 | 配置文件名称。 | 无 |
ApplicationName | String | 是 | 否 | 应用名称。 | 无 |
ConfigItemKey | String | 否 | 否 | 配置项键。 | 无 |
NodeGroupName | String | 否 | 否 | 节点组名称。 | 当ConfigScope取值为NODE_GROUP且NodeGroupId取值为空时,本参数生效。 |
NodeGroupId | String | 否 | 否 | 节点组ID。 | 当ConfigScope取值为NODE_GROUP时,本参数生效。 说明 NodeGroupId参数的优先级高于NodeGroupName参数。 |
ConfigScope | String | 否 | 否 | 配置范围。 | 取值:
|
ConfigItemValue | String | 否 | 否 | 配置项值。 | 无 |
NodeGroups语法
"NodeGroups": [
{
"WithPublicIp": Boolean,
"SpotInstanceRemedy": Boolean,
"NodeCount": Number,
"NodeGroupName": String,
"DataDisks": List,
"VSwitchIds": List,
"SpotBidPrices": List,
"NodeResizeStrategy": String,
"SystemDisk": Map,
"NodeGroupType": String,
"InstanceTypes": List,
"AdditionalSecurityGroupIds": List,
"CostOptimizedConfig": Map,
"GracefulShutdown": Boolean,
"DeploymentSetStrategy": String,
"SpotStrategy": String
}
]
NodeGroups属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
WithPublicIp | Boolean | 否 | 否 | 是否开公网IP。 | 取值:
|
SpotInstanceRemedy | Boolean | 否 | 否 | 是否开启抢占式实例。当收到抢占式实例将被回收的系统消息时,伸缩组将尝试创建新的实例,替换掉将被回收的抢占式实例。 | 取值:
|
NodeCount | Number | 否 | 否 | 节点数量。 | 取值范围:1~1000。 |
NodeGroupName | String | 否 | 否 | 节点组名称。 | 最大长度128个字符。集群内要求节点组名称唯一。 |
DataDisks | List | 否 | 否 | 数据盘。 | 更多信息,请参见DataDisks属性。 |
VSwitchIds | List | 否 | 否 | 虚拟交换机ID列表。 | 无 |
SpotBidPrices | List | 否 | 否 | 抢占式Spot实例出价价格。 | 当SpotStrategy取值为SpotWithPriceLimit时,本参数生效。 说明 最多添加100个实例出价价格。 更多信息,请参见SpotBidPrices属性。 |
NodeResizeStrategy | String | 否 | 否 | 节点扩容策略。 | 取值:
|
SystemDisk | Map | 否 | 否 | 系统盘。 | 更多信息,请参见SystemDisk属性。 |
NodeGroupType | String | 是 | 否 | 节点组类型。 | 取值:
|
InstanceTypes | List | 是 | 否 | 节点实例类型列表。 | 最多添加100个节点实例类型。 |
AdditionalSecurityGroupIds | List | 否 | 否 | 附加安全组。 | 除集群设置的安全组外,为节点组单独设置的附加安全组,最多添加2个附加安全组。 |
CostOptimizedConfig | Map | 否 | 否 | 成本优化模式配置。 | 无 |
GracefulShutdown | Boolean | 否 | 否 | 节点组上部署的组件是否开启优雅下线。 | 取值:
|
DeploymentSetStrategy | String | 否 | 否 | 部署集策略。 | 取值:
|
SpotStrategy | String | 否 | 否 | 抢占式Spot实例策略。 | 取值:
|
DataDisks语法
"DataDisks": [
{
"Category": String,
"PerformanceLevel": String,
"Size": Number,
"Count": Number
}
]
DataDisks属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Category | String | 是 | 否 | 磁盘类型。 | 无 |
PerformanceLevel | String | 否 | 否 | 创建ESSD云盘作为数据盘使用时,设置云盘的性能等级。 | 取值:
|
Size | Number | 是 | 否 | 磁盘大小。 | 无 |
Count | Number | 否 | 否 | 每个节点系统盘数量。 | 无 |
SpotBidPrices语法
"SpotBidPrices": [
{
"BidPrice": Number,
"InstanceType": String
}
]
SpotBidPrices属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
BidPrice | Number | 否 | 否 | 实例的每小时最高出价。 | 支持最大3位小数,当参数SpotStrategy取值为SpotWithPriceLimit时,本参数生效。 |
InstanceType | String | 否 | 否 | ECS实例类型。 | 无 |
SystemDisk语法
"SystemDisk": {
"Category": String,
"PerformanceLevel": String,
"Size": Number,
"Count": Number
}
SystemDisk属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Category | String | 是 | 否 | 磁盘类型。 | 无 |
PerformanceLevel | String | 否 | 否 | 创建ESSD云盘作为系统盘使用时,设置云盘的性能等级。 | 取值:
|
Size | Number | 是 | 否 | 磁盘容量大小。 | 取值范围:20~500。 |
Count | Number | 否 | 否 | 每个节点系统盘数量。 | 默认值:1。 |
CostOptimizedConfig语法
"CostOptimizedConfig": {
"OnDemandBaseCapacity": Number,
"OnDemandPercentageAboveBaseCapacity": Number,
"SpotInstancePools": Number
}
CostOptimizedConfig属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
OnDemandBaseCapacity | Number | 是 | 否 | 节点组所需按量计费实例个数的最小值。 | 无 |
OnDemandPercentageAboveBaseCapacity | Number | 是 | 否 | 节点组满足最小按量计费实例数(OnDemandBaseCapacity)要求后,超出的实例中按量计费实例应占的比例。 | 取值范围:0~100。 |
SpotInstancePools | Number | 是 | 否 | 指定可用实例规格的个数。 | 无 |
BootstrapScripts语法
"BootstrapScripts": [
{
"ScriptPath": String,
"ScriptArgs": String,
"ExecutionFailStrategy": String,
"Priority": Number,
"ScriptName": String,
"ExecutionMoment": String,
"NodeSelector": Map
}
]
BootstrapScripts属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
ScriptPath | String | 是 | 否 | 脚本所在OSS路径。 | 以 |
ScriptArgs | String | 否 | 否 | 脚本执行参数。 | 无 |
ExecutionFailStrategy | String | 否 | 否 | 执行失败策略。 | 取值:
|
Priority | Number | 否 | 否 | 脚本执行优先级。 | 取值范围:1~100。 |
ScriptName | String | 是 | 否 | 脚本名称。 | 长度为1~64个字符,必须以大小写字母或中文开头,不能以 |
ExecutionMoment | String | 否 | 否 | 脚本的执行时机。 | 取值:
|
NodeSelector | Map | 是 | 否 | 节点选择器。 | 无 |
NodeSelector语法
"NodeSelector": {
"NodeGroupTypes": List,
"NodeGroupName": String,
"NodeGroupId": String,
"NodeSelectType": String,
"NodeNames": List
}
NodeSelector属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
NodeGroupTypes | List | 否 | 否 | 节点组类型。 | 取值:
|
NodeGroupName | String | 否 | 否 | 节点组名称。 | 当NodeSelectType取值为NodeGroup且NodeGroupId取值为空时,本参数生效。 |
NodeGroupId | String | 否 | 否 | 节点组ID。 | 当NodeSelectType取值为NodeGroup时,本参数生效。 |
NodeSelectType | String | 是 | 否 | 节点选择类型。 | 取值:
|
NodeNames | List | 否 | 否 | 节点名称列表。 | 当NodeSelectType取值Node时,本参数生效。 |
SubscriptionConfig语法
"SubscriptionConfig": {
"AutoRenewDurationUnit": String,
"AutoRenew": Boolean,
"PaymentDurationUnit": String,
"PaymentDuration": Number,
"AutoRenewDuration": Number
}
SubscriptionConfig属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
AutoRenewDurationUnit | String | 否 | 否 | 自动续费时长单位。 | 取值: Month:月。 |
AutoRenew | Boolean | 否 | 否 | 自动续费。 | 取值:
|
PaymentDurationUnit | String | 否 | 否 | 付费时长单位。 | 取值: Month:月。 |
PaymentDuration | Number | 否 | 否 | 付费时长。 | 当PaymentDurationUnit取值为Month时,取值为1、2、3、4、5、6、7、8、9、12、24、36、48、60。 |
AutoRenewDuration | Number | 否 | 否 | 自动续费时长。 | 当AutoRenew取值为true时,本参数生效。当AutoRenewDurationUnit取值为Month时,取值为1、2、3、4、5、6、7、8、9、12、24、36、48、60。 |
NodeAttributes语法
"NodeAttributes": {
"KeyPairName": String,
"VpcId": String,
"ZoneId": String,
"SecurityGroupId": String,
"RamRole": String,
"MasterRootPassword": String
}
NodeAttributes属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
KeyPairName | String | 否 | 否 | ECS SSH登录密钥。 | 无 |
VpcId | String | 是 | 否 | 专有网络ID。 | 无 |
ZoneId | String | 是 | 否 | 可用区ID。 | 无 |
SecurityGroupId | String | 是 | 否 | 安全组ID。 | EMR只支持普通安全组,不支持企业安全组。 |
RamRole | String | 否 | 否 | ECS访问资源绑定的角色。 | 默认值:AliyunECSInstanceForEMRRole。 |
MasterRootPassword | String | 否 | 否 | 主节点Root密码。 | 无 |
Tags语法
"Tags": [
{
"Value": String,
"Key": String
}
]
Tags属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Value | String | 否 | 否 | 标签值。 | 非必填,可以为空字符串。最多支持128个字符,不能以 |
Key | String | 是 | 否 | 标签键。 | 必填参数,不允许为空字符串。最多支持128个字符,不能以 |
返回值
Fn::GetAtt
ClusterId:集群ID。
ApplicationLinks:集群应用链接。