# Amazon EMR Construct Library

This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.

```ts
import * as emr from 'aws-cdk-lib/aws-emr';
```

There are no official hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet. Here are some suggestions on how to proceed:

- Search [Construct Hub for EMR construct libraries](https://constructs.dev/search?q=emr)
- Use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, in the same way you would use [the CloudFormation AWS::EMR resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_EMR.html) directly.

There are no hand-written ([L2](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_lib)) constructs for this service yet.
However, you can still use the automatically generated [L1](https://docs.aws.amazon.com/cdk/latest/guide/constructs.html#constructs_l1_using) constructs, and use this service exactly as you would using CloudFormation directly.

For more information on the resources and properties available for this service, see the [CloudFormation documentation for AWS::EMR](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_EMR.html).

(Read the [CDK Contributing Guide](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) and submit an RFC if you are interested in contributing to this construct library.)

## Types

| Name | Kind | Summary |
| --- | --- | --- |
| [`CfnCluster`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster) | Construct (L1) | The `AWS::EMR::Cluster` resource specifies an Amazon EMR cluster. |
| [`CfnInstanceFleetConfig`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig) | Construct (L1) | Use `InstanceFleetConfig` to define instance fleets for an EMR cluster. |
| [`CfnInstanceGroupConfig`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig) | Construct (L1) | Use `InstanceGroupConfig` to define instance groups for an EMR cluster. |
| [`CfnSecurityConfiguration`](/v2/docs/aws-cdk-lib.aws_emr.CfnSecurityConfiguration) | Construct (L1) | Use a `SecurityConfiguration` resource to configure data encryption, Kerberos authentication (available in Amazon EMR release version 5.10.0 and later), and Amazon S3 authorization for EMRFS (available in EMR 5.10.0 and later). You can re-use a security configuration for any number of clusters in your account. For more information and example security configuration JSON objects, see [Create a Security Configuration](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-create-security-configuration.html) in the *Amazon EMR Management Guide* . |
| [`CfnStep`](/v2/docs/aws-cdk-lib.aws_emr.CfnStep) | Construct (L1) | Use `Step` to specify a cluster (job flow) step, which runs only on the master node. |
| [`CfnStudio`](/v2/docs/aws-cdk-lib.aws_emr.CfnStudio) | Construct (L1) | The `AWS::EMR::Studio` resource specifies an Amazon EMR Studio. |
| [`CfnStudioSessionMapping`](/v2/docs/aws-cdk-lib.aws_emr.CfnStudioSessionMapping) | Construct (L1) | The `AWS::EMR::StudioSessionMapping` resource is an Amazon EMR resource type that maps a user or group to the Amazon EMR Studio specified by `StudioId` , and applies a session policy that defines Studio permissions for that user or group. |
| [`CfnWALWorkspace`](/v2/docs/aws-cdk-lib.aws_emr.CfnWALWorkspace) | Construct (L1) | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-walworkspace.html. |
| [`CfnCluster.ApplicationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.ApplicationProperty) | Struct | `Application` is a property of `AWS::EMR::Cluster` . |
| [`CfnCluster.AutoScalingPolicyProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.AutoScalingPolicyProperty) | Struct | `AutoScalingPolicy` is a subproperty of `InstanceGroupConfig` . |
| [`CfnCluster.AutoTerminationPolicyProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.AutoTerminationPolicyProperty) | Struct | An auto-termination policy for an Amazon EMR cluster. |
| [`CfnCluster.BootstrapActionConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.BootstrapActionConfigProperty) | Struct | `BootstrapActionConfig` is a property of `AWS::EMR::Cluster` that can be used to run bootstrap actions on EMR clusters. |
| [`CfnCluster.CloudWatchAlarmDefinitionProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.CloudWatchAlarmDefinitionProperty) | Struct | `CloudWatchAlarmDefinition` is a subproperty of the `ScalingTrigger` property, which determines when to trigger an automatic scaling activity. |
| [`CfnCluster.ComputeLimitsProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.ComputeLimitsProperty) | Struct | The Amazon EC2 unit limits for a managed scaling policy. |
| [`CfnCluster.ConfigurationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.ConfigurationProperty) | Struct | > Used only with Amazon EMR release 4.0 and later. |
| [`CfnCluster.EbsBlockDeviceConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.EbsBlockDeviceConfigProperty) | Struct | `EbsBlockDeviceConfig` is a subproperty of the `EbsConfiguration` property type. |
| [`CfnCluster.EbsConfigurationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.EbsConfigurationProperty) | Struct | `EbsConfiguration` is a subproperty of `InstanceFleetConfig` or `InstanceGroupConfig` . |
| [`CfnCluster.HadoopJarStepConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.HadoopJarStepConfigProperty) | Struct | The `HadoopJarStepConfig` property type specifies a job flow step consisting of a JAR file whose main function will be executed. |
| [`CfnCluster.InstanceFleetConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.InstanceFleetConfigProperty) | Struct | Use `InstanceFleetConfig` to define instance fleets for an EMR cluster. |
| [`CfnCluster.InstanceFleetProvisioningSpecificationsProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.InstanceFleetProvisioningSpecificationsProperty) | Struct | `InstanceFleetProvisioningSpecification` is a subproperty of `InstanceFleetConfig` . |
| [`CfnCluster.InstanceFleetResizingSpecificationsProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.InstanceFleetResizingSpecificationsProperty) | Struct | The resize specification for On-Demand and Spot Instances in the fleet. |
| [`CfnCluster.InstanceGroupConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.InstanceGroupConfigProperty) | Struct | Use `InstanceGroupConfig` to define instance groups for an EMR cluster. |
| [`CfnCluster.InstanceTypeConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.InstanceTypeConfigProperty) | Struct | > The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. |
| [`CfnCluster.JobFlowInstancesConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.JobFlowInstancesConfigProperty) | Struct | `JobFlowInstancesConfig` is a property of the `AWS::EMR::Cluster` resource. |
| [`CfnCluster.KerberosAttributesProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.KerberosAttributesProperty) | Struct | `KerberosAttributes` is a property of the `AWS::EMR::Cluster` resource. |
| [`CfnCluster.KeyValueProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.KeyValueProperty) | Struct | `KeyValue` is a subproperty of the `HadoopJarStepConfig` property type. |
| [`CfnCluster.ManagedScalingPolicyProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.ManagedScalingPolicyProperty) | Struct | Managed scaling policy for an Amazon EMR cluster. |
| [`CfnCluster.MetricDimensionProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.MetricDimensionProperty) | Struct | `MetricDimension` is a subproperty of the `CloudWatchAlarmDefinition` property type. |
| [`CfnCluster.OnDemandCapacityReservationOptionsProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.OnDemandCapacityReservationOptionsProperty) | Struct | Describes the strategy for using unused Capacity Reservations for fulfilling On-Demand capacity. |
| [`CfnCluster.OnDemandProvisioningSpecificationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.OnDemandProvisioningSpecificationProperty) | Struct | The launch specification for On-Demand Instances in the instance fleet, which determines the allocation strategy. |
| [`CfnCluster.OnDemandResizingSpecificationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.OnDemandResizingSpecificationProperty) | Struct | The resize specification for On-Demand Instances in the instance fleet, which contains the resize timeout period. |
| [`CfnCluster.PlacementGroupConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.PlacementGroupConfigProperty) | Struct | Placement group configuration for an Amazon EMR cluster. |
| [`CfnCluster.PlacementTypeProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.PlacementTypeProperty) | Struct | `PlacementType` is a property of the `AWS::EMR::Cluster` resource. |
| [`CfnCluster.ScalingActionProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.ScalingActionProperty) | Struct | `ScalingAction` is a subproperty of the `ScalingRule` property type. |
| [`CfnCluster.ScalingConstraintsProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.ScalingConstraintsProperty) | Struct | `ScalingConstraints` is a subproperty of the `AutoScalingPolicy` property type. |
| [`CfnCluster.ScalingRuleProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.ScalingRuleProperty) | Struct | `ScalingRule` is a subproperty of the `AutoScalingPolicy` property type. |
| [`CfnCluster.ScalingTriggerProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.ScalingTriggerProperty) | Struct | `ScalingTrigger` is a subproperty of the `ScalingRule` property type. |
| [`CfnCluster.ScriptBootstrapActionConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.ScriptBootstrapActionConfigProperty) | Struct | `ScriptBootstrapActionConfig` is a subproperty of the `BootstrapActionConfig` property type. |
| [`CfnCluster.SimpleScalingPolicyConfigurationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.SimpleScalingPolicyConfigurationProperty) | Struct | `SimpleScalingPolicyConfiguration` is a subproperty of the `ScalingAction` property type. |
| [`CfnCluster.SpotProvisioningSpecificationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.SpotProvisioningSpecificationProperty) | Struct | `SpotProvisioningSpecification` is a subproperty of the `InstanceFleetProvisioningSpecifications` property type. |
| [`CfnCluster.SpotResizingSpecificationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.SpotResizingSpecificationProperty) | Struct | The resize specification for Spot Instances in the instance fleet, which contains the resize timeout period. |
| [`CfnCluster.StepConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.StepConfigProperty) | Struct | `StepConfig` is a property of the `AWS::EMR::Cluster` resource. |
| [`CfnCluster.VolumeSpecificationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnCluster.VolumeSpecificationProperty) | Struct | `VolumeSpecification` is a subproperty of the `EbsBlockDeviceConfig` property type. |
| [`CfnClusterProps`](/v2/docs/aws-cdk-lib.aws_emr.CfnClusterProps) | Struct | Properties for defining a `CfnCluster`. |
| [`CfnInstanceFleetConfig.ConfigurationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.ConfigurationProperty) | Struct | > Used only with Amazon EMR release 4.0 and later. |
| [`CfnInstanceFleetConfig.EbsBlockDeviceConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.EbsBlockDeviceConfigProperty) | Struct | `EbsBlockDeviceConfig` is a subproperty of the `EbsConfiguration` property type. |
| [`CfnInstanceFleetConfig.EbsConfigurationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.EbsConfigurationProperty) | Struct | `EbsConfiguration` determines the EBS volumes to attach to EMR cluster instances. |
| [`CfnInstanceFleetConfig.InstanceFleetProvisioningSpecificationsProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.InstanceFleetProvisioningSpecificationsProperty) | Struct | > The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. |
| [`CfnInstanceFleetConfig.InstanceFleetResizingSpecificationsProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.InstanceFleetResizingSpecificationsProperty) | Struct | The resize specification for On-Demand and Spot Instances in the fleet. |
| [`CfnInstanceFleetConfig.InstanceTypeConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.InstanceTypeConfigProperty) | Struct | `InstanceType` config is a subproperty of `InstanceFleetConfig` . |
| [`CfnInstanceFleetConfig.OnDemandCapacityReservationOptionsProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.OnDemandCapacityReservationOptionsProperty) | Struct | Describes the strategy for using unused Capacity Reservations for fulfilling On-Demand capacity. |
| [`CfnInstanceFleetConfig.OnDemandProvisioningSpecificationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.OnDemandProvisioningSpecificationProperty) | Struct | The launch specification for On-Demand Instances in the instance fleet, which determines the allocation strategy. |
| [`CfnInstanceFleetConfig.OnDemandResizingSpecificationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.OnDemandResizingSpecificationProperty) | Struct | The resize specification for On-Demand Instances in the instance fleet, which contains the resize timeout period. |
| [`CfnInstanceFleetConfig.SpotProvisioningSpecificationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.SpotProvisioningSpecificationProperty) | Struct | `SpotProvisioningSpecification` is a subproperty of the `InstanceFleetProvisioningSpecifications` property type. |
| [`CfnInstanceFleetConfig.SpotResizingSpecificationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.SpotResizingSpecificationProperty) | Struct | The resize specification for Spot Instances in the instance fleet, which contains the resize timeout period. |
| [`CfnInstanceFleetConfig.VolumeSpecificationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfig.VolumeSpecificationProperty) | Struct | `VolumeSpecification` is a subproperty of the `EbsBlockDeviceConfig` property type. |
| [`CfnInstanceFleetConfigProps`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceFleetConfigProps) | Struct | Properties for defining a `CfnInstanceFleetConfig`. |
| [`CfnInstanceGroupConfig.AppConfigurationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.AppConfigurationProperty) | Struct |  |
| [`CfnInstanceGroupConfig.AutoScalingPolicyProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.AutoScalingPolicyProperty) | Struct | `AutoScalingPolicy` defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric. |
| [`CfnInstanceGroupConfig.CloudWatchAlarmDefinitionProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.CloudWatchAlarmDefinitionProperty) | Struct | `CloudWatchAlarmDefinition` is a subproperty of the `ScalingTrigger` property, which determines when to trigger an automatic scaling activity. |
| [`CfnInstanceGroupConfig.ConfigurationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.ConfigurationProperty) | Struct | `Configurations` is a property of the `AWS::EMR::Cluster` resource that specifies the configuration of applications on an Amazon EMR cluster. |
| [`CfnInstanceGroupConfig.EbsBlockDeviceConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.EbsBlockDeviceConfigProperty) | Struct | Configuration of requested EBS block device associated with the instance group with count of volumes that are associated to every instance. |
| [`CfnInstanceGroupConfig.EbsConfigurationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.EbsConfigurationProperty) | Struct | The Amazon EBS configuration of a cluster instance. |
| [`CfnInstanceGroupConfig.MetricDimensionProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.MetricDimensionProperty) | Struct | `MetricDimension` is a subproperty of the `CloudWatchAlarmDefinition` property type. |
| [`CfnInstanceGroupConfig.ScalingActionProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.ScalingActionProperty) | Struct | `ScalingAction` is a subproperty of the `ScalingRule` property type. |
| [`CfnInstanceGroupConfig.ScalingConstraintsProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.ScalingConstraintsProperty) | Struct | `ScalingConstraints` is a subproperty of the `AutoScalingPolicy` property type. |
| [`CfnInstanceGroupConfig.ScalingRuleProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.ScalingRuleProperty) | Struct | `ScalingRule` is a subproperty of the `AutoScalingPolicy` property type. |
| [`CfnInstanceGroupConfig.ScalingTriggerProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.ScalingTriggerProperty) | Struct | `ScalingTrigger` is a subproperty of the `ScalingRule` property type. |
| [`CfnInstanceGroupConfig.SimpleScalingPolicyConfigurationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.SimpleScalingPolicyConfigurationProperty) | Struct | `SimpleScalingPolicyConfiguration` is a subproperty of the `ScalingAction` property type. |
| [`CfnInstanceGroupConfig.VolumeSpecificationProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.VolumeSpecificationProperty) | Struct | `VolumeSpecification` is a subproperty of the `EbsBlockDeviceConfig` property type. |
| [`CfnInstanceGroupConfigProps`](/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfigProps) | Struct | Properties for defining a `CfnInstanceGroupConfig`. |
| [`CfnSecurityConfigurationProps`](/v2/docs/aws-cdk-lib.aws_emr.CfnSecurityConfigurationProps) | Struct | Properties for defining a `CfnSecurityConfiguration`. |
| [`CfnStep.HadoopJarStepConfigProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnStep.HadoopJarStepConfigProperty) | Struct | A job flow step consisting of a JAR file whose main function will be executed. |
| [`CfnStep.KeyValueProperty`](/v2/docs/aws-cdk-lib.aws_emr.CfnStep.KeyValueProperty) | Struct | `KeyValue` is a subproperty of the `HadoopJarStepConfig` property type. |
| [`CfnStepProps`](/v2/docs/aws-cdk-lib.aws_emr.CfnStepProps) | Struct | Properties for defining a `CfnStep`. |
| [`CfnStudioProps`](/v2/docs/aws-cdk-lib.aws_emr.CfnStudioProps) | Struct | Properties for defining a `CfnStudio`. |
| [`CfnStudioSessionMappingProps`](/v2/docs/aws-cdk-lib.aws_emr.CfnStudioSessionMappingProps) | Struct | Properties for defining a `CfnStudioSessionMapping`. |
| [`CfnWALWorkspaceProps`](/v2/docs/aws-cdk-lib.aws_emr.CfnWALWorkspaceProps) | Struct | Properties for defining a `CfnWALWorkspace`. |
