全部產品
Search
文件中心

:ALIYUN::EMR::Cluster2

更新時間:Jun 19, 2024

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

叢集類型。

取值:

  • DATALAKE:新版資料湖。

  • OLAP:資料分析。

  • DATAFLOW:即時資料流。

  • DATASERVING:資料服務。

NodeGroups

List

節點群組配置數組。

最多添加100個節點群組配置。

更多資訊,請參見NodeGroups屬性

ReleaseVersion

String

EMR發行版。

BootstrapScripts

List

引導指令碼數組。

最多添加10個引導指令碼數組。

更多資訊,請參見BootstrapScripts屬性

SubscriptionConfig

Map

預付費配置。

當PaymentType取值為Subscription時,本參數必填。

DeployMode

String

叢集中的應用部署模式。

取值:

  • NORMAL:非高可用部署。叢集1個MASTER節點。

  • HA:高可用部署。高可用部署要求至少3個MASTER節點。

SecurityMode

String

叢集Kerberos安全模式。

取值:

  • NORMAL:普通模式,不開啟Kerberos模式。

  • KERBEROS:開啟Kerberos模式。

NodeAttributes

Map

節點屬性。

叢集所有ECS節點基礎屬性。

ClusterName

String

叢集名稱。

長度為1~128個字元,必須以大小寫字母或中文開頭,不能以http://https:// 開頭。可以包含中文、英文、數字、半形冒號(:)、底線(_)、半形句號(.)或者短劃線(-)。

PaymentType

String

付費類型。

取值:

  • PayAsYouGo:後付費。

  • Subscription:預付費。

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

配置範圍。

取值:

  • CLUSTER(預設值):叢集層級。

  • NODE_GROUP:節點群組層級。

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。

取值:

  • true:開公網IP。

  • false(預設值):不開公網IP。

SpotInstanceRemedy

Boolean

是否開啟搶佔式執行個體。當收到搶佔式執行個體將被回收的系統訊息時,伸縮組將嘗試建立新的執行個體,替換掉將被回收的搶佔式執行個體。

取值:

  • true:開啟搶佔式執行個體。

  • false(預設值):不開啟搶佔式執行個體。

NodeCount

Number

節點數量。

取值範圍:1~1000。

NodeGroupName

String

節點群組名稱。

最大長度128個字元。叢集內要求節點群組名稱唯一。

DataDisks

List

資料盤。

更多資訊,請參見DataDisks屬性

VSwitchIds

List

虛擬交換器ID列表。

SpotBidPrices

List

搶佔式Spot執行個體出價價格。

當SpotStrategy取值為SpotWithPriceLimit時,本參數生效。

說明

最多添加100個執行個體出價價格。

更多資訊,請參見SpotBidPrices屬性

NodeResizeStrategy

String

節點擴容策略。

取值:

  • COST_OPTIMIZED:成本最佳化策略。

  • PRIORITY(預設值):優先順序策略。

SystemDisk

Map

系統硬碟。

更多資訊,請參見SystemDisk屬性

NodeGroupType

String

節點群組類型。

取值:

  • MASTER:管理類型節點群組。

  • CORE:儲存類型節點群組。

  • TASK:計算類型節點群組。

InstanceTypes

List

節點執行個體類型列表。

最多添加100個節點執行個體類型。

AdditionalSecurityGroupIds

List

附加安全性群組。

除叢集設定的安全性群組外,為節點群組單獨設定的附加安全性群組,最多添加2個附加安全性群組。

CostOptimizedConfig

Map

成本最佳化模式配置。

GracefulShutdown

Boolean

節點群組上部署的組件是否開啟優雅下線。

取值:

  • true:開啟優雅下線。

  • false(預設值):不開啟優雅下線

DeploymentSetStrategy

String

部署集策略。

取值:

  • NONE(預設值):不適用部署集。

  • CLUSTER:使用叢集層級部署集。

  • NODE_GROUP:使用節點群組層級部署集。

SpotStrategy

String

搶佔式Spot執行個體策略。

取值:

  • NoSpot(預設值):正常隨用隨付執行個體。

  • SpotWithPriceLimit:設定最高出價的搶佔式執行個體。

  • SpotAsPriceGo:系統自動出價,最高隨用隨付價格的搶佔式執行個體。

DataDisks文法

"DataDisks": [
  {
    "Category": String,
    "PerformanceLevel": String,
    "Size": Number,
    "Count": Number
  }
]

DataDisks屬性

屬性名稱

類型

必須

允許更新

描述

約束

Category

String

磁碟類型。

PerformanceLevel

String

建立ESSD雲端硬碟作為資料盤使用時,設定雲端硬碟的效能等級。

取值:

  • PL0:單盤最高隨機讀寫IOPS 1萬。

  • PL1(預設值):單盤最高隨機讀寫IOPS 5萬。

  • PL2:單盤最高隨機讀寫IOPS 10萬。

  • PL3:單盤最高隨機讀寫IOPS 100萬。

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雲端硬碟作為系統硬碟使用時,設定雲端硬碟的效能等級。

取值:

  • PL0:單盤最高隨機讀寫IOPS 1萬。

  • PL1(預設):單盤最高隨機讀寫IOPS 5萬。

  • PL2:單盤最高隨機讀寫IOPS 10萬。

  • PL3:單盤最高隨機讀寫IOPS 100萬。

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路徑。

oss:// 開頭。

ScriptArgs

String

指令碼執行參數。

ExecutionFailStrategy

String

執行失敗策略。

取值:

  • FAILED_CONTINUE:失敗後不阻塞叢集建立或者阻塞叢集擴容。

  • FAILED_BLOCK:失敗後阻塞叢集建立或者阻塞叢集擴容。

Priority

Number

指令碼執行優先順序。

取值範圍:1~100。

ScriptName

String

指令碼名稱。

長度為1~64個字元,必須以大小寫字母或中文開頭,不能以 http:// https:// 開頭。可以包含中文、英文、數字、底線(_)、或者短劃線(-)。

ExecutionMoment

String

指令碼的執行時機。

取值:

  • BEFORE_INSTALL:應用安裝前。

  • AFTER_STARTED:應用啟動後。

NodeSelector

Map

節點選取器。

NodeSelector文法

"NodeSelector": {
  "NodeGroupTypes": List,
  "NodeGroupName": String,
  "NodeGroupId": String,
  "NodeSelectType": String,
  "NodeNames": List
}

NodeSelector屬性

屬性名稱

類型

必須

允許更新

描述

約束

NodeGroupTypes

List

節點群組類型。

取值:

  • MASTER:主節點群組類型。

  • CORE:核心節點群組類型。

  • TASK:計算階節點群組類型。

NodeGroupName

String

節點群組名稱。

當NodeSelectType取值為NodeGroup且NodeGroupId取值為空白時,本參數生效。

NodeGroupId

String

節點群組ID。

當NodeSelectType取值為NodeGroup時,本參數生效。

NodeSelectType

String

節點選擇類型。

取值:

  • CLUSTER:叢集。

  • NODE_GROUP:節點群組。

  • NODE:節點。

NodeNames

List

節點名稱列表。

當NodeSelectType取值Node時,本參數生效。

SubscriptionConfig文法

"SubscriptionConfig": {
  "AutoRenewDurationUnit": String,
  "AutoRenew": Boolean,
  "PaymentDurationUnit": String,
  "PaymentDuration": Number,
  "AutoRenewDuration": Number
}

SubscriptionConfig屬性

屬性名稱

類型

必須

允許更新

描述

約束

AutoRenewDurationUnit

String

自動續約時間長度單位。

取值:

Month:月。

AutoRenew

Boolean

自動續約。

取值:

  • true:開啟啟動續約。

  • false(預設值):不開啟自動續約。

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個字元,不能以acs:開頭,不能包含http://或者https://

Key

String

標籤鍵。

必填參數,不允許為空白字串。最多支援128個字元,不能以aliyunacs:開頭,不能包含http://或者https://

傳回值

Fn::GetAtt

  • ClusterId:叢集ID。

  • ApplicationLinks:叢集應用連結。

樣本

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  Applications:
    Type: Json
    Description: 'Application List.The value range of the number n of the number N group: 1 ~ 100.'
  ClusterType:
    Type: String
    Description: |-
      Cluster type.Ranges:
      Datalake: The new version of the data lake.
      OLAP: Data analysis.
      DataFlow: Real -time data stream.
      DataServing: Data service.
      Hadoop: The old version of the data lake (not recommended, it is recommended to use the new version of the data lake).
    AllowedValues:
      - DATAFLOW
      - DATALAKE
      - DATASERVING
      - HADOOP
      - OLAP
  NodeGroups:
    Type: Json
    Description: 'The node group configuration array.The value range of the number n of the number N group: 1 ~ 100.'
    MinLength: 1
    MaxLength: 100
  ReleaseVersion:
    Type: String
    Description: EMR release version.View EMR distribution versions can be viewed through the EMR cluster.
  NodeAttributes:
    Type: Json
    Description: Node attributes.All ECS nodes basic attributes of the cluster.
  ClusterName:
    Type: String
    Description: 'Cluster name.The length is 1 ~ 128 characters, and the alphabet or Chinese must be started. It cannot start with http:// and https: //.It can include Chinese, English, numbers, half-horn colons (:), down line (_), half-angle period (.) Or short lines (-)'
Resources:
  Cluster:
    Type: ALIYUN::EMR::Cluster2
    Properties:
      Applications:
        Ref: Applications
      ClusterType:
        Ref: ClusterType
      NodeGroups:
        Ref: NodeGroups
      ReleaseVersion:
        Ref: ReleaseVersion
      NodeAttributes:
        Ref: NodeAttributes
      ClusterName:
        Ref: ClusterName
Outputs:
  ClusterId:
    Description: Cluster ID.
    Value:
      Fn::GetAtt:
        - Cluster
        - ClusterId

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "Applications": {
      "Type": "Json",
      "Description": "Application List.The value range of the number n of the number N group: 1 ~ 100."
    },
    "ClusterType": {
      "Type": "String",
      "Description": "Cluster type.Ranges:\nDatalake: The new version of the data lake.\nOLAP: Data analysis.\nDataFlow: Real -time data stream.\nDataServing: Data service.\nHadoop: The old version of the data lake (not recommended, it is recommended to use the new version of the data lake).",
      "AllowedValues": [
        "DATAFLOW",
        "DATALAKE",
        "DATASERVING",
        "HADOOP",
        "OLAP"
      ]
    },
    "NodeGroups": {
      "Type": "Json",
      "Description": "The node group configuration array.The value range of the number n of the number N group: 1 ~ 100.",
      "MinLength": 1,
      "MaxLength": 100
    },
    "ReleaseVersion": {
      "Type": "String",
      "Description": "EMR release version.View EMR distribution versions can be viewed through the EMR cluster."
    },
    "NodeAttributes": {
      "Type": "Json",
      "Description": "Node attributes.All ECS nodes basic attributes of the cluster."
    },
    "ClusterName": {
      "Type": "String",
      "Description": "Cluster name.The length is 1 ~ 128 characters, and the alphabet or Chinese must be started. It cannot start with http:// and https: //.It can include Chinese, English, numbers, half-horn colons (:), down line (_), half-angle period (.) Or short lines (-)"
    }
  },
  "Resources": {
    "Cluster": {
      "Type": "ALIYUN::EMR::Cluster2",
      "Properties": {
        "Applications": {
          "Ref": "Applications"
        },
        "ClusterType": {
          "Ref": "ClusterType"
        },
        "NodeGroups": {
          "Ref": "NodeGroups"
        },
        "ReleaseVersion": {
          "Ref": "ReleaseVersion"
        },
        "NodeAttributes": {
          "Ref": "NodeAttributes"
        },
        "ClusterName": {
          "Ref": "ClusterName"
        }
      }
    }
  },
  "Outputs": {
    "ClusterId": {
      "Description": "Cluster ID.",
      "Value": {
        "Fn::GetAtt": [
          "Cluster",
          "ClusterId"
        ]
      }
    }
  }
}