class CfnClusterPropsMixin (mixin)
| Language | Type name |
|---|---|
.NET | Amazon.CDK.CfnPropertyMixins.AWS.EMR.CfnClusterPropsMixin |
Go | github.com/aws/aws-cdk-go/awscdkcfnpropertymixins/v2/awsemr#CfnClusterPropsMixin |
Java | software.amazon.awscdk.cfnpropertymixins.services.emr.CfnClusterPropsMixin |
Python | aws_cdk.cfn_property_mixins.aws_emr.CfnClusterPropsMixin |
TypeScript | @aws-cdk/cfn-property-mixins » aws_emr » CfnClusterPropsMixin |
Implements
IMixin
Extends
Mixin
The AWS::EMR::Cluster resource specifies an Amazon EMR cluster.
This cluster is a collection of Amazon EC2 instances that run open source big data frameworks and applications to process and analyze vast amounts of data. For more information, see the Amazon EMR Management Guide .
Amazon EMR now supports launching task instance groups and task instance fleets as part of the AWS::EMR::Cluster resource. This can be done by using the JobFlowInstancesConfig property type's TaskInstanceGroups and TaskInstanceFleets subproperties. Using these subproperties reduces delays in provisioning task nodes compared to specifying task nodes with the AWS::EMR::InstanceGroupConfig and AWS::EMR::InstanceFleetConfig resources. Please refer to the examples at the bottom of this page to learn how to use these subproperties.
See also: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html
Example
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_emr as emr } from '@aws-cdk/cfn-property-mixins';
import * as cdk from 'aws-cdk-lib';
declare const additionalInfo: any;
declare const configurationProperty_: emr.CfnClusterPropsMixin.ConfigurationProperty;
declare const mergeStrategy: cdk.IMergeStrategy;
const cfnClusterPropsMixin = new emr.CfnClusterPropsMixin({
additionalInfo: additionalInfo,
applications: [{
additionalInfo: {
additionalInfoKey: 'additionalInfo',
},
args: ['args'],
name: 'name',
version: 'version',
}],
autoScalingRole: 'autoScalingRole',
autoTerminationPolicy: {
idleTimeout: 123,
},
bootstrapActions: [{
name: 'name',
scriptBootstrapAction: {
args: ['args'],
path: 'path',
},
}],
configurations: [{
classification: 'classification',
configurationProperties: {
configurationPropertiesKey: 'configurationProperties',
},
configurations: [configurationProperty_],
}],
customAmiId: 'customAmiId',
ebsRootVolumeIops: 123,
ebsRootVolumeSize: 123,
ebsRootVolumeThroughput: 123,
instances: {
additionalMasterSecurityGroups: ['additionalMasterSecurityGroups'],
additionalSlaveSecurityGroups: ['additionalSlaveSecurityGroups'],
coreInstanceFleet: {
instanceTypeConfigs: [{
bidPrice: 'bidPrice',
bidPriceAsPercentageOfOnDemandPrice: 123,
configurations: [{
classification: 'classification',
configurationProperties: {
configurationPropertiesKey: 'configurationProperties',
},
configurations: [configurationProperty_],
}],
customAmiId: 'customAmiId',
ebsConfiguration: {
ebsBlockDeviceConfigs: [{
volumeSpecification: {
iops: 123,
sizeInGb: 123,
throughput: 123,
volumeType: 'volumeType',
},
volumesPerInstance: 123,
}],
ebsOptimized: false,
},
instanceType: 'instanceType',
priority: 123,
weightedCapacity: 123,
}],
launchSpecifications: {
onDemandSpecification: {
allocationStrategy: 'allocationStrategy',
capacityReservationOptions: {
capacityReservationPreference: 'capacityReservationPreference',
capacityReservationResourceGroupArn: 'capacityReservationResourceGroupArn',
usageStrategy: 'usageStrategy',
},
},
spotSpecification: {
allocationStrategy: 'allocationStrategy',
blockDurationMinutes: 123,
timeoutAction: 'timeoutAction',
timeoutDurationMinutes: 123,
},
},
name: 'name',
resizeSpecifications: {
onDemandResizeSpecification: {
allocationStrategy: 'allocationStrategy',
capacityReservationOptions: {
capacityReservationPreference: 'capacityReservationPreference',
capacityReservationResourceGroupArn: 'capacityReservationResourceGroupArn',
usageStrategy: 'usageStrategy',
},
timeoutDurationMinutes: 123,
},
spotResizeSpecification: {
allocationStrategy: 'allocationStrategy',
timeoutDurationMinutes: 123,
},
},
targetOnDemandCapacity: 123,
targetSpotCapacity: 123,
},
coreInstanceGroup: {
autoScalingPolicy: {
constraints: {
maxCapacity: 123,
minCapacity: 123,
},
rules: [{
action: {
market: 'market',
simpleScalingPolicyConfiguration: {
adjustmentType: 'adjustmentType',
coolDown: 123,
scalingAdjustment: 123,
},
},
description: 'description',
name: 'name',
trigger: {
cloudWatchAlarmDefinition: {
comparisonOperator: 'comparisonOperator',
dimensions: [{
key: 'key',
value: 'value',
}],
evaluationPeriods: 123,
metricName: 'metricName',
namespace: 'namespace',
period: 123,
statistic: 'statistic',
threshold: 123,
unit: 'unit',
},
},
}],
},
bidPrice: 'bidPrice',
configurations: [{
classification: 'classification',
configurationProperties: {
configurationPropertiesKey: 'configurationProperties',
},
configurations: [configurationProperty_],
}],
customAmiId: 'customAmiId',
ebsConfiguration: {
ebsBlockDeviceConfigs: [{
volumeSpecification: {
iops: 123,
sizeInGb: 123,
throughput: 123,
volumeType: 'volumeType',
},
volumesPerInstance: 123,
}],
ebsOptimized: false,
},
instanceCount: 123,
instanceType: 'instanceType',
market: 'market',
name: 'name',
},
ec2KeyName: 'ec2KeyName',
ec2SubnetId: 'ec2SubnetId',
ec2SubnetIds: ['ec2SubnetIds'],
emrManagedMasterSecurityGroup: 'emrManagedMasterSecurityGroup',
emrManagedSlaveSecurityGroup: 'emrManagedSlaveSecurityGroup',
hadoopVersion: 'hadoopVersion',
keepJobFlowAliveWhenNoSteps: false,
masterInstanceFleet: {
instanceTypeConfigs: [{
bidPrice: 'bidPrice',
bidPriceAsPercentageOfOnDemandPrice: 123,
configurations: [{
classification: 'classification',
configurationProperties: {
configurationPropertiesKey: 'configurationProperties',
},
configurations: [configurationProperty_],
}],
customAmiId: 'customAmiId',
ebsConfiguration: {
ebsBlockDeviceConfigs: [{
volumeSpecification: {
iops: 123,
sizeInGb: 123,
throughput: 123,
volumeType: 'volumeType',
},
volumesPerInstance: 123,
}],
ebsOptimized: false,
},
instanceType: 'instanceType',
priority: 123,
weightedCapacity: 123,
}],
launchSpecifications: {
onDemandSpecification: {
allocationStrategy: 'allocationStrategy',
capacityReservationOptions: {
capacityReservationPreference: 'capacityReservationPreference',
capacityReservationResourceGroupArn: 'capacityReservationResourceGroupArn',
usageStrategy: 'usageStrategy',
},
},
spotSpecification: {
allocationStrategy: 'allocationStrategy',
blockDurationMinutes: 123,
timeoutAction: 'timeoutAction',
timeoutDurationMinutes: 123,
},
},
name: 'name',
resizeSpecifications: {
onDemandResizeSpecification: {
allocationStrategy: 'allocationStrategy',
capacityReservationOptions: {
capacityReservationPreference: 'capacityReservationPreference',
capacityReservationResourceGroupArn: 'capacityReservationResourceGroupArn',
usageStrategy: 'usageStrategy',
},
timeoutDurationMinutes: 123,
},
spotResizeSpecification: {
allocationStrategy: 'allocationStrategy',
timeoutDurationMinutes: 123,
},
},
targetOnDemandCapacity: 123,
targetSpotCapacity: 123,
},
masterInstanceGroup: {
autoScalingPolicy: {
constraints: {
maxCapacity: 123,
minCapacity: 123,
},
rules: [{
action: {
market: 'market',
simpleScalingPolicyConfiguration: {
adjustmentType: 'adjustmentType',
coolDown: 123,
scalingAdjustment: 123,
},
},
description: 'description',
name: 'name',
trigger: {
cloudWatchAlarmDefinition: {
comparisonOperator: 'comparisonOperator',
dimensions: [{
key: 'key',
value: 'value',
}],
evaluationPeriods: 123,
metricName: 'metricName',
namespace: 'namespace',
period: 123,
statistic: 'statistic',
threshold: 123,
unit: 'unit',
},
},
}],
},
bidPrice: 'bidPrice',
configurations: [{
classification: 'classification',
configurationProperties: {
configurationPropertiesKey: 'configurationProperties',
},
configurations: [configurationProperty_],
}],
customAmiId: 'customAmiId',
ebsConfiguration: {
ebsBlockDeviceConfigs: [{
volumeSpecification: {
iops: 123,
sizeInGb: 123,
throughput: 123,
volumeType: 'volumeType',
},
volumesPerInstance: 123,
}],
ebsOptimized: false,
},
instanceCount: 123,
instanceType: 'instanceType',
market: 'market',
name: 'name',
},
placement: {
availabilityZone: 'availabilityZone',
},
serviceAccessSecurityGroup: 'serviceAccessSecurityGroup',
taskInstanceFleets: [{
instanceTypeConfigs: [{
bidPrice: 'bidPrice',
bidPriceAsPercentageOfOnDemandPrice: 123,
configurations: [{
classification: 'classification',
configurationProperties: {
configurationPropertiesKey: 'configurationProperties',
},
configurations: [configurationProperty_],
}],
customAmiId: 'customAmiId',
ebsConfiguration: {
ebsBlockDeviceConfigs: [{
volumeSpecification: {
iops: 123,
sizeInGb: 123,
throughput: 123,
volumeType: 'volumeType',
},
volumesPerInstance: 123,
}],
ebsOptimized: false,
},
instanceType: 'instanceType',
priority: 123,
weightedCapacity: 123,
}],
launchSpecifications: {
onDemandSpecification: {
allocationStrategy: 'allocationStrategy',
capacityReservationOptions: {
capacityReservationPreference: 'capacityReservationPreference',
capacityReservationResourceGroupArn: 'capacityReservationResourceGroupArn',
usageStrategy: 'usageStrategy',
},
},
spotSpecification: {
allocationStrategy: 'allocationStrategy',
blockDurationMinutes: 123,
timeoutAction: 'timeoutAction',
timeoutDurationMinutes: 123,
},
},
name: 'name',
resizeSpecifications: {
onDemandResizeSpecification: {
allocationStrategy: 'allocationStrategy',
capacityReservationOptions: {
capacityReservationPreference: 'capacityReservationPreference',
capacityReservationResourceGroupArn: 'capacityReservationResourceGroupArn',
usageStrategy: 'usageStrategy',
},
timeoutDurationMinutes: 123,
},
spotResizeSpecification: {
allocationStrategy: 'allocationStrategy',
timeoutDurationMinutes: 123,
},
},
targetOnDemandCapacity: 123,
targetSpotCapacity: 123,
}],
taskInstanceGroups: [{
autoScalingPolicy: {
constraints: {
maxCapacity: 123,
minCapacity: 123,
},
rules: [{
action: {
market: 'market',
simpleScalingPolicyConfiguration: {
adjustmentType: 'adjustmentType',
coolDown: 123,
scalingAdjustment: 123,
},
},
description: 'description',
name: 'name',
trigger: {
cloudWatchAlarmDefinition: {
comparisonOperator: 'comparisonOperator',
dimensions: [{
key: 'key',
value: 'value',
}],
evaluationPeriods: 123,
metricName: 'metricName',
namespace: 'namespace',
period: 123,
statistic: 'statistic',
threshold: 123,
unit: 'unit',
},
},
}],
},
bidPrice: 'bidPrice',
configurations: [{
classification: 'classification',
configurationProperties: {
configurationPropertiesKey: 'configurationProperties',
},
configurations: [configurationProperty_],
}],
customAmiId: 'customAmiId',
ebsConfiguration: {
ebsBlockDeviceConfigs: [{
volumeSpecification: {
iops: 123,
sizeInGb: 123,
throughput: 123,
volumeType: 'volumeType',
},
volumesPerInstance: 123,
}],
ebsOptimized: false,
},
instanceCount: 123,
instanceType: 'instanceType',
market: 'market',
name: 'name',
}],
terminationProtected: false,
unhealthyNodeReplacement: false,
},
jobFlowRole: 'jobFlowRole',
kerberosAttributes: {
adDomainJoinPassword: 'adDomainJoinPassword',
adDomainJoinUser: 'adDomainJoinUser',
crossRealmTrustPrincipalPassword: 'crossRealmTrustPrincipalPassword',
kdcAdminPassword: 'kdcAdminPassword',
realm: 'realm',
},
logEncryptionKmsKeyId: 'logEncryptionKmsKeyId',
logUri: 'logUri',
managedScalingPolicy: {
computeLimits: {
maximumCapacityUnits: 123,
maximumCoreCapacityUnits: 123,
maximumOnDemandCapacityUnits: 123,
minimumCapacityUnits: 123,
unitType: 'unitType',
},
scalingStrategy: 'scalingStrategy',
utilizationPerformanceIndex: 123,
},
monitoringConfiguration: {
cloudWatchLogConfiguration: {
enabled: false,
encryptionKeyArn: 'encryptionKeyArn',
logGroupName: 'logGroupName',
logStreamNamePrefix: 'logStreamNamePrefix',
logTypes: {
logTypesKey: ['logTypes'],
},
},
},
name: 'name',
osReleaseLabel: 'osReleaseLabel',
placementGroupConfigs: [{
instanceRole: 'instanceRole',
placementStrategy: 'placementStrategy',
}],
releaseLabel: 'releaseLabel',
scaleDownBehavior: 'scaleDownBehavior',
securityConfiguration: 'securityConfiguration',
serviceRole: 'serviceRole',
stepConcurrencyLevel: 123,
steps: [{
actionOnFailure: 'actionOnFailure',
hadoopJarStep: {
args: ['args'],
jar: 'jar',
mainClass: 'mainClass',
stepProperties: [{
key: 'key',
value: 'value',
}],
},
name: 'name',
}],
tags: [{
key: 'key',
value: 'value',
}],
visibleToAllUsers: false,
}, /* all optional props */ {
strategy: mergeStrategy,
});
Initializer
new CfnClusterPropsMixin(props: CfnClusterMixinProps, options?: CfnPropertyMixinOptions)
Parameters
- props
Cfn— L1 properties to apply.Cluster Mixin Props - options
Cfn— Mixin options.Property Mixin Options
Create a mixin to apply properties to AWS::EMR::Cluster.
Properties
| Name | Type | Description |
|---|---|---|
| props | Cfn | |
| strategy | IMerge | |
| static CFN_PROPERTY_KEYS | string[] |
props
Type:
Cfn
strategy
Type:
IMerge
static CFN_PROPERTY_KEYS
Type:
string[]
Methods
| Name | Description |
|---|---|
| apply | Apply the mixin properties to the construct. |
| supports(construct) | Check if this mixin supports the given construct. |
applyTo(construct)
public applyTo(construct: IConstruct): void
Parameters
- construct
IConstruct
Apply the mixin properties to the construct.
supports(construct)
public supports(construct: IConstruct): boolean
Parameters
- construct
IConstruct
Returns
boolean
Check if this mixin supports the given construct.

.NET
Go
Java
Python
TypeScript