AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS::EMR::Cluster

AWS::EMR::Cluster 资源可创建 Amazon EMR 群集,该群集是 EC2 实例的集合,您可以在其上运行大数据框架,以处理和分析大量数据。有关更多信息,请参阅 Amazon EMR 管理指南 中的规划 Amazon EMR 群集

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::EMR::Cluster", "Properties" : { "AdditionalInfo" : JSON object, "Applications" : [ Applications, ... ], "AutoScalingRole" : String, "BootstrapActions" [ Bootstrap Actions, ... ], "Configurations" : [ Configurations, ... ], "Instances" : JobFlowInstancesConfig, "JobFlowRole" : String, "LogUri" : String, "Name" : String, "ReleaseLabel" : String, "ScaleDownBehavior" : String, "SecurityConfiguration" : String, "ServiceRole" : String, "Tags" : [ Resource Tag, ... ], "VisibleToAllUsers" : Boolean } }

YAML

Type: "AWS::EMR::Cluster" Properties: AdditionalInfo: JSON object Applications: - Applications AutoScalingRole: String BootstrapActions: - Bootstrap Actions Configurations: - Configurations Instances: JobFlowInstancesConfig JobFlowRole: String LogUri: String Name: String ReleaseLabel: String ScaleDownBehavior: String SecurityConfiguration: String ServiceRole: String Tags: - Resource Tag VisibleToAllUsers: Boolean

属性

注意

有关每个属性的约束和有效值的更多信息,请参阅 Amazon EMR API Reference 中的群集数据类型。

AdditionalInfo

要选择的其他功能。

Required: No

Type: JSON object

更新要求替换

Applications

要在群集上部署的软件应用程序,以及 Amazon EMR 传递给这些应用程序的参数。

Required: No

Type: Amazon EMR 群集应用程序 列表

更新要求替换

AutoScalingRole

自动扩展策略的 AWS Identity and Access Management (IAM) 角色。默认角色是 EMR_AutoScaling_DefaultRole。IAM 角色提供自动扩展功能在实例组中启动和终止 Amazon EC2 实例所需的权限。

Required: No

Type: String

更新要求替换

BootstrapActions

Amazon EMR 在群集上启动应用程序之前运行的引导操作的列表。

Required: No

Type: Amazon EMR Cluster BootstrapActionConfig 列表

更新要求替换

Configurations

Amazon EMR 群集的软件配置。

Required: No

Type: Amazon EMR 群集配置 列表

更新要求替换

Instances

配置将在 Amazon EMR 群集中运行任务的 EC2 实例。

Required: Yes

Type: Amazon EMR Cluster JobFlowInstancesConfig

更新要求替换

JobFlowRole

也称为实例配置文件EC2 角色。接受与您要使用的角色关联的实例配置文件。群集中的所有 EC2 实例将代入此角色。

Required: Yes

Type: String

更新要求替换

LogUri

供 Amazon EMR 写入任务流日志文件的 S3 存储桶位置。如果不指定值,则 Amazon EMR 不写入任何日志文件。

Required: No

Type: String

更新要求替换

Name

Amazon EMR 群集的名称。

Required: Yes

Type: String

更新要求替换

ReleaseLabel

Amazon EMR 软件版本标签。版本是您可以在 Amazon EMR 群集上安装和配置的一组软件应用程序和组件。有关更多信息,请参阅 Amazon EMR 版本指南 中的关于 Amazon EMR 版本

目前,AWS CloudFormation 只支持 Amazon EMR 4.0 及更高软件版本。

Required: Conditional。如果您指定了 Applications 属性,则必须指定该属性。

Type: String

更新要求替换

ScaleDownBehavior

指示出现自动缩减活动或调整实例组大小时,各个 EC2 实例将如何终止。有关更多信息,请参阅 Amazon EMR API Reference 中的群集

Required: No

Type: String

更新要求替换

SecurityConfiguration

应用于群集的安全配置的名称。

Required: No

Type: String

更新要求替换

ServiceRole

Amazon EMR 代您访问 AWS 资源时所担任的 IAM 角色。有关更多信息,请参阅 Amazon EMR 管理指南 中的为 Amazon EMR 配置 IAM 角色

Required: Yes

Type: String

更新要求替换

Tags

帮助您标识 Amazon EMR 群集的任意标签组(键/值对)。

Required: No

Type: AWS CloudFormation 资源标签

更新要求无需中断

VisibleToAllUsers

指示群集中的实例是否对 AWS 账户中的所有 IAM 用户可见。如果指定 true,则所有 IAM 用户都能查看和(如果有权限)管理这些实例。如果指定 false,则只有创建群集的 IAM 用户能够查看和管理它。默认情况下,AWS CloudFormation 将此属性设置为 false

Required: No

Type: Boolean

更新要求无需中断

返回值

Ref

如果向 Ref 内部函数提供此资源的逻辑 ID,Ref 将返回此群集 ID,如 j-1ABCD123AB1A

有关使用 Ref 功能的更多信息,请参阅参考

Fn::GetAtt

Fn::GetAtt 返回一个此类型指定属性的值。以下为可用属性和示例返回值。

MasterPublicDNS

主节点(实例)的公有 DNS 名称,如 ec2-12-123-123-123.us-west-2.compute.amazonaws.com

有关使用 Fn::GetAtt 的更多信息,请参见 Fn::GetAtt

示例

创建具有两个核心节点的群集

下面的示例创建具有一个主节点和两个核心节点的 Amazon EMR 群集。指定的 IAM 角色是 Amazon EMR 提供的默认角色。此示例还假定群集是在具有默认 VPC 和子网的 AWS 区域中启动的。如果您没有 VPC 和子网,可使用 Ec2SubnetId 属性为群集指定 VPC 和子网。否则,AWS CloudFormation 将无法启动群集,并返回以下状态消息:ElasticMapReduce Cluster failed to stabilize

JSON

"TestCluster": { "Type": "AWS::EMR::Cluster", "Properties": { "Instances": { "MasterInstanceGroup": { "InstanceCount": 1, "InstanceType": "m3.xlarge", "Market": "ON_DEMAND", "Name": "Master" }, "CoreInstanceGroup": { "InstanceCount": 2, "InstanceType": "m3.xlarge", "Market": "ON_DEMAND", "Name": "Core" }, "TerminationProtected" : true }, "Name": "TestCluster", "JobFlowRole": "EMR_EC2_DefaultRole", "ServiceRole": "EMR_DefaultRole", "ReleaseLabel": "emr-4.2.0", "Tags": [ { "Key": "IsTest", "Value": "True" } ] } }

YAML

TestCluster: Type: "AWS::EMR::Cluster" Properties: Instances: MasterInstanceGroup: InstanceCount: 1 InstanceType: "m3.xlarge" Market: "ON_DEMAND" Name: "Master" CoreInstanceGroup: InstanceCount: 2 InstanceType: "m3.xlarge" Market: "ON_DEMAND" Name: "Core" TerminationProtected: true Name: "TestCluster" JobFlowRole: "EMR_EC2_DefaultRole" ServiceRole: "EMR_DefaultRole" ReleaseLabel: "emr-4.2.0" Tags: - Key: "IsTest" Value: "True"

创建具有引导操作的群集

下面的示例使用引导操作创建 Amazon EMR 群集。

JSON

"TestCluster": { "Type": "AWS::EMR::Cluster", "Properties": { "BootstrapActions": [{ "Name": "SomeBootStrapAction", "ScriptBootstrapAction": { "Path": "/path/to/s3" } }], "Instances": { "MasterInstanceGroup": { "InstanceCount": 1, "InstanceType": "m3.xlarge", "Market": "ON_DEMAND", "Name": "Master" }, "CoreInstanceGroup": { "InstanceCount": 2, "InstanceType": "m3.xlarge", "Market": "ON_DEMAND", "Name": "Core" }, "TerminationProtected": true }, "Name": "TestCluster", "JobFlowRole": "EMR_EC2_DefaultRole", "ScaleDownBehavior": "TERMINATE_AT_TASK_COMPLETION", "ServiceRole": "EMR_DefaultRole", "ReleaseLabel": "emr-4.2.0", "Tags": [ { "Key": "IsTest", "Value": "True" } ] } }

YAML

TestCluster: Type: "AWS::EMR::Cluster" Properties: BootstrapActions: - Name: "SomeBootStrapAction" ScriptBootstrapAction: Path: "/path/to/s3" Instances: MasterInstanceGroup: InstanceCount: 1 InstanceType: "m3.xlarge" Market: "ON_DEMAND" Name: "Master" CoreInstanceGroup: InstanceCount: 2 InstanceType: "m3.xlarge" Market: "ON_DEMAND" Name: "Core" TerminationProtected: true Name: "TestCluster" JobFlowRole: "EMR_EC2_DefaultRole" ScaleDownBehavior: "TERMINATE_AT_TASK_COMPLETION" ServiceRole: "EMR_DefaultRole" ReleaseLabel: "emr-4.2.0" Tags: - Key: "IsTest" Value: "True"

本页内容: