1. Packages
  2. AWS
  3. API Docs
  4. emr
  5. Cluster
AWS v6.76.0 published on Tuesday, Apr 8, 2025 by Pulumi

aws.emr.Cluster

Explore with Pulumi AI

Provides an Elastic MapReduce Cluster, a web service that makes it easy to process large amounts of data efficiently. See Amazon Elastic MapReduce Documentation for more information.

To configure Instance Groups for task nodes, see the aws.emr.InstanceGroup resource.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {
    name: "emr-test-arn",
    releaseLabel: "emr-4.6.0",
    applications: ["Spark"],
    additionalInfo: `{
  "instanceAwsClientConfiguration": {
    "proxyPort": 8099,
    "proxyHost": "myproxy.example.com"
  }
}
`,
    terminationProtection: false,
    keepJobFlowAliveWhenNoSteps: true,
    ec2Attributes: {
        subnetId: main.id,
        emrManagedMasterSecurityGroup: sg.id,
        emrManagedSlaveSecurityGroup: sg.id,
        instanceProfile: emrProfile.arn,
    },
    masterInstanceGroup: {
        instanceType: "m4.large",
    },
    coreInstanceGroup: {
        instanceType: "c4.large",
        instanceCount: 1,
        ebsConfigs: [{
            size: 40,
            type: "gp2",
            volumesPerInstance: 1,
        }],
        bidPrice: "0.30",
        autoscalingPolicy: `{
"Constraints": {
  "MinCapacity": 1,
  "MaxCapacity": 2
},
"Rules": [
  {
    "Name": "ScaleOutMemoryPercentage",
    "Description": "Scale out if YARNMemoryAvailablePercentage is less than 15",
    "Action": {
      "SimpleScalingPolicyConfiguration": {
        "AdjustmentType": "CHANGE_IN_CAPACITY",
        "ScalingAdjustment": 1,
        "CoolDown": 300
      }
    },
    "Trigger": {
      "CloudWatchAlarmDefinition": {
        "ComparisonOperator": "LESS_THAN",
        "EvaluationPeriods": 1,
        "MetricName": "YARNMemoryAvailablePercentage",
        "Namespace": "AWS/ElasticMapReduce",
        "Period": 300,
        "Statistic": "AVERAGE",
        "Threshold": 15.0,
        "Unit": "PERCENT"
      }
    }
  }
]
}
`,
    },
    ebsRootVolumeSize: 100,
    tags: {
        role: "rolename",
        env: "env",
    },
    bootstrapActions: [{
        path: "s3://elasticmapreduce/bootstrap-actions/run-if",
        name: "runif",
        args: [
            "instance.isMaster=true",
            "echo running on master node",
        ],
    }],
    configurationsJson: `  [
    {
      "Classification": "hadoop-env",
      "Configurations": [
        {
          "Classification": "export",
          "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
          }
        }
      ],
      "Properties": {}
    },
    {
      "Classification": "spark-env",
      "Configurations": [
        {
          "Classification": "export",
          "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
          }
        }
      ],
      "Properties": {}
    }
  ]
`,
    serviceRole: iamEmrServiceRole.arn,
});
Copy
import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster",
    name="emr-test-arn",
    release_label="emr-4.6.0",
    applications=["Spark"],
    additional_info="""{
  "instanceAwsClientConfiguration": {
    "proxyPort": 8099,
    "proxyHost": "myproxy.example.com"
  }
}
""",
    termination_protection=False,
    keep_job_flow_alive_when_no_steps=True,
    ec2_attributes={
        "subnet_id": main["id"],
        "emr_managed_master_security_group": sg["id"],
        "emr_managed_slave_security_group": sg["id"],
        "instance_profile": emr_profile["arn"],
    },
    master_instance_group={
        "instance_type": "m4.large",
    },
    core_instance_group={
        "instance_type": "c4.large",
        "instance_count": 1,
        "ebs_configs": [{
            "size": 40,
            "type": "gp2",
            "volumes_per_instance": 1,
        }],
        "bid_price": "0.30",
        "autoscaling_policy": """{
"Constraints": {
  "MinCapacity": 1,
  "MaxCapacity": 2
},
"Rules": [
  {
    "Name": "ScaleOutMemoryPercentage",
    "Description": "Scale out if YARNMemoryAvailablePercentage is less than 15",
    "Action": {
      "SimpleScalingPolicyConfiguration": {
        "AdjustmentType": "CHANGE_IN_CAPACITY",
        "ScalingAdjustment": 1,
        "CoolDown": 300
      }
    },
    "Trigger": {
      "CloudWatchAlarmDefinition": {
        "ComparisonOperator": "LESS_THAN",
        "EvaluationPeriods": 1,
        "MetricName": "YARNMemoryAvailablePercentage",
        "Namespace": "AWS/ElasticMapReduce",
        "Period": 300,
        "Statistic": "AVERAGE",
        "Threshold": 15.0,
        "Unit": "PERCENT"
      }
    }
  }
]
}
""",
    },
    ebs_root_volume_size=100,
    tags={
        "role": "rolename",
        "env": "env",
    },
    bootstrap_actions=[{
        "path": "s3://elasticmapreduce/bootstrap-actions/run-if",
        "name": "runif",
        "args": [
            "instance.isMaster=true",
            "echo running on master node",
        ],
    }],
    configurations_json="""  [
    {
      "Classification": "hadoop-env",
      "Configurations": [
        {
          "Classification": "export",
          "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
          }
        }
      ],
      "Properties": {}
    },
    {
      "Classification": "spark-env",
      "Configurations": [
        {
          "Classification": "export",
          "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
          }
        }
      ],
      "Properties": {}
    }
  ]
""",
    service_role=iam_emr_service_role["arn"])
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			Name:         pulumi.String("emr-test-arn"),
			ReleaseLabel: pulumi.String("emr-4.6.0"),
			Applications: pulumi.StringArray{
				pulumi.String("Spark"),
			},
			AdditionalInfo: pulumi.String(`{
  "instanceAwsClientConfiguration": {
    "proxyPort": 8099,
    "proxyHost": "myproxy.example.com"
  }
}
`),
			TerminationProtection:       pulumi.Bool(false),
			KeepJobFlowAliveWhenNoSteps: pulumi.Bool(true),
			Ec2Attributes: &emr.ClusterEc2AttributesArgs{
				SubnetId:                      pulumi.Any(main.Id),
				EmrManagedMasterSecurityGroup: pulumi.Any(sg.Id),
				EmrManagedSlaveSecurityGroup:  pulumi.Any(sg.Id),
				InstanceProfile:               pulumi.Any(emrProfile.Arn),
			},
			MasterInstanceGroup: &emr.ClusterMasterInstanceGroupArgs{
				InstanceType: pulumi.String("m4.large"),
			},
			CoreInstanceGroup: &emr.ClusterCoreInstanceGroupArgs{
				InstanceType:  pulumi.String("c4.large"),
				InstanceCount: pulumi.Int(1),
				EbsConfigs: emr.ClusterCoreInstanceGroupEbsConfigArray{
					&emr.ClusterCoreInstanceGroupEbsConfigArgs{
						Size:               pulumi.Int(40),
						Type:               pulumi.String("gp2"),
						VolumesPerInstance: pulumi.Int(1),
					},
				},
				BidPrice: pulumi.String("0.30"),
				AutoscalingPolicy: pulumi.String(`{
"Constraints": {
  "MinCapacity": 1,
  "MaxCapacity": 2
},
"Rules": [
  {
    "Name": "ScaleOutMemoryPercentage",
    "Description": "Scale out if YARNMemoryAvailablePercentage is less than 15",
    "Action": {
      "SimpleScalingPolicyConfiguration": {
        "AdjustmentType": "CHANGE_IN_CAPACITY",
        "ScalingAdjustment": 1,
        "CoolDown": 300
      }
    },
    "Trigger": {
      "CloudWatchAlarmDefinition": {
        "ComparisonOperator": "LESS_THAN",
        "EvaluationPeriods": 1,
        "MetricName": "YARNMemoryAvailablePercentage",
        "Namespace": "AWS/ElasticMapReduce",
        "Period": 300,
        "Statistic": "AVERAGE",
        "Threshold": 15.0,
        "Unit": "PERCENT"
      }
    }
  }
]
}
`),
			},
			EbsRootVolumeSize: pulumi.Int(100),
			Tags: pulumi.StringMap{
				"role": pulumi.String("rolename"),
				"env":  pulumi.String("env"),
			},
			BootstrapActions: emr.ClusterBootstrapActionArray{
				&emr.ClusterBootstrapActionArgs{
					Path: pulumi.String("s3://elasticmapreduce/bootstrap-actions/run-if"),
					Name: pulumi.String("runif"),
					Args: pulumi.StringArray{
						pulumi.String("instance.isMaster=true"),
						pulumi.String("echo running on master node"),
					},
				},
			},
			ConfigurationsJson: pulumi.String(`  [
    {
      "Classification": "hadoop-env",
      "Configurations": [
        {
          "Classification": "export",
          "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
          }
        }
      ],
      "Properties": {}
    },
    {
      "Classification": "spark-env",
      "Configurations": [
        {
          "Classification": "export",
          "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
          }
        }
      ],
      "Properties": {}
    }
  ]
`),
			ServiceRole: pulumi.Any(iamEmrServiceRole.Arn),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        Name = "emr-test-arn",
        ReleaseLabel = "emr-4.6.0",
        Applications = new[]
        {
            "Spark",
        },
        AdditionalInfo = @"{
  ""instanceAwsClientConfiguration"": {
    ""proxyPort"": 8099,
    ""proxyHost"": ""myproxy.example.com""
  }
}
",
        TerminationProtection = false,
        KeepJobFlowAliveWhenNoSteps = true,
        Ec2Attributes = new Aws.Emr.Inputs.ClusterEc2AttributesArgs
        {
            SubnetId = main.Id,
            EmrManagedMasterSecurityGroup = sg.Id,
            EmrManagedSlaveSecurityGroup = sg.Id,
            InstanceProfile = emrProfile.Arn,
        },
        MasterInstanceGroup = new Aws.Emr.Inputs.ClusterMasterInstanceGroupArgs
        {
            InstanceType = "m4.large",
        },
        CoreInstanceGroup = new Aws.Emr.Inputs.ClusterCoreInstanceGroupArgs
        {
            InstanceType = "c4.large",
            InstanceCount = 1,
            EbsConfigs = new[]
            {
                new Aws.Emr.Inputs.ClusterCoreInstanceGroupEbsConfigArgs
                {
                    Size = 40,
                    Type = "gp2",
                    VolumesPerInstance = 1,
                },
            },
            BidPrice = "0.30",
            AutoscalingPolicy = @"{
""Constraints"": {
  ""MinCapacity"": 1,
  ""MaxCapacity"": 2
},
""Rules"": [
  {
    ""Name"": ""ScaleOutMemoryPercentage"",
    ""Description"": ""Scale out if YARNMemoryAvailablePercentage is less than 15"",
    ""Action"": {
      ""SimpleScalingPolicyConfiguration"": {
        ""AdjustmentType"": ""CHANGE_IN_CAPACITY"",
        ""ScalingAdjustment"": 1,
        ""CoolDown"": 300
      }
    },
    ""Trigger"": {
      ""CloudWatchAlarmDefinition"": {
        ""ComparisonOperator"": ""LESS_THAN"",
        ""EvaluationPeriods"": 1,
        ""MetricName"": ""YARNMemoryAvailablePercentage"",
        ""Namespace"": ""AWS/ElasticMapReduce"",
        ""Period"": 300,
        ""Statistic"": ""AVERAGE"",
        ""Threshold"": 15.0,
        ""Unit"": ""PERCENT""
      }
    }
  }
]
}
",
        },
        EbsRootVolumeSize = 100,
        Tags = 
        {
            { "role", "rolename" },
            { "env", "env" },
        },
        BootstrapActions = new[]
        {
            new Aws.Emr.Inputs.ClusterBootstrapActionArgs
            {
                Path = "s3://elasticmapreduce/bootstrap-actions/run-if",
                Name = "runif",
                Args = new[]
                {
                    "instance.isMaster=true",
                    "echo running on master node",
                },
            },
        },
        ConfigurationsJson = @"  [
    {
      ""Classification"": ""hadoop-env"",
      ""Configurations"": [
        {
          ""Classification"": ""export"",
          ""Properties"": {
            ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
          }
        }
      ],
      ""Properties"": {}
    },
    {
      ""Classification"": ""spark-env"",
      ""Configurations"": [
        {
          ""Classification"": ""export"",
          ""Properties"": {
            ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
          }
        }
      ],
      ""Properties"": {}
    }
  ]
",
        ServiceRole = iamEmrServiceRole.Arn,
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import com.pulumi.aws.emr.inputs.ClusterEc2AttributesArgs;
import com.pulumi.aws.emr.inputs.ClusterMasterInstanceGroupArgs;
import com.pulumi.aws.emr.inputs.ClusterCoreInstanceGroupArgs;
import com.pulumi.aws.emr.inputs.ClusterBootstrapActionArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .name("emr-test-arn")
            .releaseLabel("emr-4.6.0")
            .applications("Spark")
            .additionalInfo("""
{
  "instanceAwsClientConfiguration": {
    "proxyPort": 8099,
    "proxyHost": "myproxy.example.com"
  }
}
            """)
            .terminationProtection(false)
            .keepJobFlowAliveWhenNoSteps(true)
            .ec2Attributes(ClusterEc2AttributesArgs.builder()
                .subnetId(main.id())
                .emrManagedMasterSecurityGroup(sg.id())
                .emrManagedSlaveSecurityGroup(sg.id())
                .instanceProfile(emrProfile.arn())
                .build())
            .masterInstanceGroup(ClusterMasterInstanceGroupArgs.builder()
                .instanceType("m4.large")
                .build())
            .coreInstanceGroup(ClusterCoreInstanceGroupArgs.builder()
                .instanceType("c4.large")
                .instanceCount(1)
                .ebsConfigs(ClusterCoreInstanceGroupEbsConfigArgs.builder()
                    .size("40")
                    .type("gp2")
                    .volumesPerInstance(1)
                    .build())
                .bidPrice("0.30")
                .autoscalingPolicy("""
{
"Constraints": {
  "MinCapacity": 1,
  "MaxCapacity": 2
},
"Rules": [
  {
    "Name": "ScaleOutMemoryPercentage",
    "Description": "Scale out if YARNMemoryAvailablePercentage is less than 15",
    "Action": {
      "SimpleScalingPolicyConfiguration": {
        "AdjustmentType": "CHANGE_IN_CAPACITY",
        "ScalingAdjustment": 1,
        "CoolDown": 300
      }
    },
    "Trigger": {
      "CloudWatchAlarmDefinition": {
        "ComparisonOperator": "LESS_THAN",
        "EvaluationPeriods": 1,
        "MetricName": "YARNMemoryAvailablePercentage",
        "Namespace": "AWS/ElasticMapReduce",
        "Period": 300,
        "Statistic": "AVERAGE",
        "Threshold": 15.0,
        "Unit": "PERCENT"
      }
    }
  }
]
}
                """)
                .build())
            .ebsRootVolumeSize(100)
            .tags(Map.ofEntries(
                Map.entry("role", "rolename"),
                Map.entry("env", "env")
            ))
            .bootstrapActions(ClusterBootstrapActionArgs.builder()
                .path("s3://elasticmapreduce/bootstrap-actions/run-if")
                .name("runif")
                .args(                
                    "instance.isMaster=true",
                    "echo running on master node")
                .build())
            .configurationsJson("""
  [
    {
      "Classification": "hadoop-env",
      "Configurations": [
        {
          "Classification": "export",
          "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
          }
        }
      ],
      "Properties": {}
    },
    {
      "Classification": "spark-env",
      "Configurations": [
        {
          "Classification": "export",
          "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
          }
        }
      ],
      "Properties": {}
    }
  ]
            """)
            .serviceRole(iamEmrServiceRole.arn())
            .build());

    }
}
Copy
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      name: emr-test-arn
      releaseLabel: emr-4.6.0
      applications:
        - Spark
      additionalInfo: |
        {
          "instanceAwsClientConfiguration": {
            "proxyPort": 8099,
            "proxyHost": "myproxy.example.com"
          }
        }        
      terminationProtection: false
      keepJobFlowAliveWhenNoSteps: true
      ec2Attributes:
        subnetId: ${main.id}
        emrManagedMasterSecurityGroup: ${sg.id}
        emrManagedSlaveSecurityGroup: ${sg.id}
        instanceProfile: ${emrProfile.arn}
      masterInstanceGroup:
        instanceType: m4.large
      coreInstanceGroup:
        instanceType: c4.large
        instanceCount: 1
        ebsConfigs:
          - size: '40'
            type: gp2
            volumesPerInstance: 1
        bidPrice: '0.30'
        autoscalingPolicy: |
          {
          "Constraints": {
            "MinCapacity": 1,
            "MaxCapacity": 2
          },
          "Rules": [
            {
              "Name": "ScaleOutMemoryPercentage",
              "Description": "Scale out if YARNMemoryAvailablePercentage is less than 15",
              "Action": {
                "SimpleScalingPolicyConfiguration": {
                  "AdjustmentType": "CHANGE_IN_CAPACITY",
                  "ScalingAdjustment": 1,
                  "CoolDown": 300
                }
              },
              "Trigger": {
                "CloudWatchAlarmDefinition": {
                  "ComparisonOperator": "LESS_THAN",
                  "EvaluationPeriods": 1,
                  "MetricName": "YARNMemoryAvailablePercentage",
                  "Namespace": "AWS/ElasticMapReduce",
                  "Period": 300,
                  "Statistic": "AVERAGE",
                  "Threshold": 15.0,
                  "Unit": "PERCENT"
                }
              }
            }
          ]
          }          
      ebsRootVolumeSize: 100
      tags:
        role: rolename
        env: env
      bootstrapActions:
        - path: s3://elasticmapreduce/bootstrap-actions/run-if
          name: runif
          args:
            - instance.isMaster=true
            - echo running on master node
      configurationsJson: |2
          [
            {
              "Classification": "hadoop-env",
              "Configurations": [
                {
                  "Classification": "export",
                  "Properties": {
                    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
                  }
                }
              ],
              "Properties": {}
            },
            {
              "Classification": "spark-env",
              "Configurations": [
                {
                  "Classification": "export",
                  "Properties": {
                    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
                  }
                }
              ],
              "Properties": {}
            }
          ]
      serviceRole: ${iamEmrServiceRole.arn}
Copy

The aws.emr.Cluster resource typically requires two IAM roles, one for the EMR Cluster to use as a service role, and another is assigned to every EC2 instance in a cluster and each application process that runs on a cluster assumes this role for permissions to interact with other AWS services. An additional role, the Auto Scaling role, is required if your cluster uses automatic scaling in Amazon EMR.

The default AWS managed EMR service role is called EMR_DefaultRole with Amazon managed policy AmazonEMRServicePolicy_v2 attached. The name of default instance profile role is EMR_EC2_DefaultRole with default managed policy AmazonElasticMapReduceforEC2Role attached, but it is on the path to deprecation and will not be replaced with another default managed policy. You’ll need to create and specify an instance profile to replace the deprecated role and default policy. See the Configure IAM service roles for Amazon EMR guide for more information on these IAM roles. There is also a fully-bootable example Pulumi configuration at the bottom of this page.

Instance Fleet

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.emr.Cluster("example", {
    masterInstanceFleet: {
        instanceTypeConfigs: [{
            instanceType: "m4.xlarge",
        }],
        targetOnDemandCapacity: 1,
    },
    coreInstanceFleet: {
        instanceTypeConfigs: [
            {
                bidPriceAsPercentageOfOnDemandPrice: 80,
                ebsConfigs: [{
                    size: 100,
                    type: "gp2",
                    volumesPerInstance: 1,
                }],
                instanceType: "m3.xlarge",
                weightedCapacity: 1,
            },
            {
                bidPriceAsPercentageOfOnDemandPrice: 100,
                ebsConfigs: [{
                    size: 100,
                    type: "gp2",
                    volumesPerInstance: 1,
                }],
                instanceType: "m4.xlarge",
                weightedCapacity: 1,
            },
            {
                bidPriceAsPercentageOfOnDemandPrice: 100,
                ebsConfigs: [{
                    size: 100,
                    type: "gp2",
                    volumesPerInstance: 1,
                }],
                instanceType: "m4.2xlarge",
                weightedCapacity: 2,
            },
        ],
        launchSpecifications: {
            spotSpecifications: [{
                allocationStrategy: "capacity-optimized",
                blockDurationMinutes: 0,
                timeoutAction: "SWITCH_TO_ON_DEMAND",
                timeoutDurationMinutes: 10,
            }],
        },
        name: "core fleet",
        targetOnDemandCapacity: 2,
        targetSpotCapacity: 2,
    },
});
const task = new aws.emr.InstanceFleet("task", {
    clusterId: example.id,
    instanceTypeConfigs: [
        {
            bidPriceAsPercentageOfOnDemandPrice: 100,
            ebsConfigs: [{
                size: 100,
                type: "gp2",
                volumesPerInstance: 1,
            }],
            instanceType: "m4.xlarge",
            weightedCapacity: 1,
        },
        {
            bidPriceAsPercentageOfOnDemandPrice: 100,
            ebsConfigs: [{
                size: 100,
                type: "gp2",
                volumesPerInstance: 1,
            }],
            instanceType: "m4.2xlarge",
            weightedCapacity: 2,
        },
    ],
    launchSpecifications: {
        spotSpecifications: [{
            allocationStrategy: "capacity-optimized",
            blockDurationMinutes: 0,
            timeoutAction: "TERMINATE_CLUSTER",
            timeoutDurationMinutes: 10,
        }],
    },
    name: "task fleet",
    targetOnDemandCapacity: 1,
    targetSpotCapacity: 1,
});
Copy
import pulumi
import pulumi_aws as aws

example = aws.emr.Cluster("example",
    master_instance_fleet={
        "instance_type_configs": [{
            "instance_type": "m4.xlarge",
        }],
        "target_on_demand_capacity": 1,
    },
    core_instance_fleet={
        "instance_type_configs": [
            {
                "bid_price_as_percentage_of_on_demand_price": 80,
                "ebs_configs": [{
                    "size": 100,
                    "type": "gp2",
                    "volumes_per_instance": 1,
                }],
                "instance_type": "m3.xlarge",
                "weighted_capacity": 1,
            },
            {
                "bid_price_as_percentage_of_on_demand_price": 100,
                "ebs_configs": [{
                    "size": 100,
                    "type": "gp2",
                    "volumes_per_instance": 1,
                }],
                "instance_type": "m4.xlarge",
                "weighted_capacity": 1,
            },
            {
                "bid_price_as_percentage_of_on_demand_price": 100,
                "ebs_configs": [{
                    "size": 100,
                    "type": "gp2",
                    "volumes_per_instance": 1,
                }],
                "instance_type": "m4.2xlarge",
                "weighted_capacity": 2,
            },
        ],
        "launch_specifications": {
            "spot_specifications": [{
                "allocation_strategy": "capacity-optimized",
                "block_duration_minutes": 0,
                "timeout_action": "SWITCH_TO_ON_DEMAND",
                "timeout_duration_minutes": 10,
            }],
        },
        "name": "core fleet",
        "target_on_demand_capacity": 2,
        "target_spot_capacity": 2,
    })
task = aws.emr.InstanceFleet("task",
    cluster_id=example.id,
    instance_type_configs=[
        {
            "bid_price_as_percentage_of_on_demand_price": 100,
            "ebs_configs": [{
                "size": 100,
                "type": "gp2",
                "volumes_per_instance": 1,
            }],
            "instance_type": "m4.xlarge",
            "weighted_capacity": 1,
        },
        {
            "bid_price_as_percentage_of_on_demand_price": 100,
            "ebs_configs": [{
                "size": 100,
                "type": "gp2",
                "volumes_per_instance": 1,
            }],
            "instance_type": "m4.2xlarge",
            "weighted_capacity": 2,
        },
    ],
    launch_specifications={
        "spot_specifications": [{
            "allocation_strategy": "capacity-optimized",
            "block_duration_minutes": 0,
            "timeout_action": "TERMINATE_CLUSTER",
            "timeout_duration_minutes": 10,
        }],
    },
    name="task fleet",
    target_on_demand_capacity=1,
    target_spot_capacity=1)
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := emr.NewCluster(ctx, "example", &emr.ClusterArgs{
			MasterInstanceFleet: &emr.ClusterMasterInstanceFleetArgs{
				InstanceTypeConfigs: emr.ClusterMasterInstanceFleetInstanceTypeConfigArray{
					&emr.ClusterMasterInstanceFleetInstanceTypeConfigArgs{
						InstanceType: pulumi.String("m4.xlarge"),
					},
				},
				TargetOnDemandCapacity: pulumi.Int(1),
			},
			CoreInstanceFleet: &emr.ClusterCoreInstanceFleetArgs{
				InstanceTypeConfigs: emr.ClusterCoreInstanceFleetInstanceTypeConfigArray{
					&emr.ClusterCoreInstanceFleetInstanceTypeConfigArgs{
						BidPriceAsPercentageOfOnDemandPrice: pulumi.Float64(80),
						EbsConfigs: emr.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArray{
							&emr.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs{
								Size:               pulumi.Int(100),
								Type:               pulumi.String("gp2"),
								VolumesPerInstance: pulumi.Int(1),
							},
						},
						InstanceType:     pulumi.String("m3.xlarge"),
						WeightedCapacity: pulumi.Int(1),
					},
					&emr.ClusterCoreInstanceFleetInstanceTypeConfigArgs{
						BidPriceAsPercentageOfOnDemandPrice: pulumi.Float64(100),
						EbsConfigs: emr.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArray{
							&emr.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs{
								Size:               pulumi.Int(100),
								Type:               pulumi.String("gp2"),
								VolumesPerInstance: pulumi.Int(1),
							},
						},
						InstanceType:     pulumi.String("m4.xlarge"),
						WeightedCapacity: pulumi.Int(1),
					},
					&emr.ClusterCoreInstanceFleetInstanceTypeConfigArgs{
						BidPriceAsPercentageOfOnDemandPrice: pulumi.Float64(100),
						EbsConfigs: emr.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArray{
							&emr.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs{
								Size:               pulumi.Int(100),
								Type:               pulumi.String("gp2"),
								VolumesPerInstance: pulumi.Int(1),
							},
						},
						InstanceType:     pulumi.String("m4.2xlarge"),
						WeightedCapacity: pulumi.Int(2),
					},
				},
				LaunchSpecifications: &emr.ClusterCoreInstanceFleetLaunchSpecificationsArgs{
					SpotSpecifications: emr.ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArray{
						&emr.ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArgs{
							AllocationStrategy:     pulumi.String("capacity-optimized"),
							BlockDurationMinutes:   pulumi.Int(0),
							TimeoutAction:          pulumi.String("SWITCH_TO_ON_DEMAND"),
							TimeoutDurationMinutes: pulumi.Int(10),
						},
					},
				},
				Name:                   pulumi.String("core fleet"),
				TargetOnDemandCapacity: pulumi.Int(2),
				TargetSpotCapacity:     pulumi.Int(2),
			},
		})
		if err != nil {
			return err
		}
		_, err = emr.NewInstanceFleet(ctx, "task", &emr.InstanceFleetArgs{
			ClusterId: example.ID(),
			InstanceTypeConfigs: emr.InstanceFleetInstanceTypeConfigArray{
				&emr.InstanceFleetInstanceTypeConfigArgs{
					BidPriceAsPercentageOfOnDemandPrice: pulumi.Float64(100),
					EbsConfigs: emr.InstanceFleetInstanceTypeConfigEbsConfigArray{
						&emr.InstanceFleetInstanceTypeConfigEbsConfigArgs{
							Size:               pulumi.Int(100),
							Type:               pulumi.String("gp2"),
							VolumesPerInstance: pulumi.Int(1),
						},
					},
					InstanceType:     pulumi.String("m4.xlarge"),
					WeightedCapacity: pulumi.Int(1),
				},
				&emr.InstanceFleetInstanceTypeConfigArgs{
					BidPriceAsPercentageOfOnDemandPrice: pulumi.Float64(100),
					EbsConfigs: emr.InstanceFleetInstanceTypeConfigEbsConfigArray{
						&emr.InstanceFleetInstanceTypeConfigEbsConfigArgs{
							Size:               pulumi.Int(100),
							Type:               pulumi.String("gp2"),
							VolumesPerInstance: pulumi.Int(1),
						},
					},
					InstanceType:     pulumi.String("m4.2xlarge"),
					WeightedCapacity: pulumi.Int(2),
				},
			},
			LaunchSpecifications: &emr.InstanceFleetLaunchSpecificationsArgs{
				SpotSpecifications: emr.InstanceFleetLaunchSpecificationsSpotSpecificationArray{
					&emr.InstanceFleetLaunchSpecificationsSpotSpecificationArgs{
						AllocationStrategy:     pulumi.String("capacity-optimized"),
						BlockDurationMinutes:   pulumi.Int(0),
						TimeoutAction:          pulumi.String("TERMINATE_CLUSTER"),
						TimeoutDurationMinutes: pulumi.Int(10),
					},
				},
			},
			Name:                   pulumi.String("task fleet"),
			TargetOnDemandCapacity: pulumi.Int(1),
			TargetSpotCapacity:     pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.Emr.Cluster("example", new()
    {
        MasterInstanceFleet = new Aws.Emr.Inputs.ClusterMasterInstanceFleetArgs
        {
            InstanceTypeConfigs = new[]
            {
                new Aws.Emr.Inputs.ClusterMasterInstanceFleetInstanceTypeConfigArgs
                {
                    InstanceType = "m4.xlarge",
                },
            },
            TargetOnDemandCapacity = 1,
        },
        CoreInstanceFleet = new Aws.Emr.Inputs.ClusterCoreInstanceFleetArgs
        {
            InstanceTypeConfigs = new[]
            {
                new Aws.Emr.Inputs.ClusterCoreInstanceFleetInstanceTypeConfigArgs
                {
                    BidPriceAsPercentageOfOnDemandPrice = 80,
                    EbsConfigs = new[]
                    {
                        new Aws.Emr.Inputs.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs
                        {
                            Size = 100,
                            Type = "gp2",
                            VolumesPerInstance = 1,
                        },
                    },
                    InstanceType = "m3.xlarge",
                    WeightedCapacity = 1,
                },
                new Aws.Emr.Inputs.ClusterCoreInstanceFleetInstanceTypeConfigArgs
                {
                    BidPriceAsPercentageOfOnDemandPrice = 100,
                    EbsConfigs = new[]
                    {
                        new Aws.Emr.Inputs.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs
                        {
                            Size = 100,
                            Type = "gp2",
                            VolumesPerInstance = 1,
                        },
                    },
                    InstanceType = "m4.xlarge",
                    WeightedCapacity = 1,
                },
                new Aws.Emr.Inputs.ClusterCoreInstanceFleetInstanceTypeConfigArgs
                {
                    BidPriceAsPercentageOfOnDemandPrice = 100,
                    EbsConfigs = new[]
                    {
                        new Aws.Emr.Inputs.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs
                        {
                            Size = 100,
                            Type = "gp2",
                            VolumesPerInstance = 1,
                        },
                    },
                    InstanceType = "m4.2xlarge",
                    WeightedCapacity = 2,
                },
            },
            LaunchSpecifications = new Aws.Emr.Inputs.ClusterCoreInstanceFleetLaunchSpecificationsArgs
            {
                SpotSpecifications = new[]
                {
                    new Aws.Emr.Inputs.ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArgs
                    {
                        AllocationStrategy = "capacity-optimized",
                        BlockDurationMinutes = 0,
                        TimeoutAction = "SWITCH_TO_ON_DEMAND",
                        TimeoutDurationMinutes = 10,
                    },
                },
            },
            Name = "core fleet",
            TargetOnDemandCapacity = 2,
            TargetSpotCapacity = 2,
        },
    });

    var task = new Aws.Emr.InstanceFleet("task", new()
    {
        ClusterId = example.Id,
        InstanceTypeConfigs = new[]
        {
            new Aws.Emr.Inputs.InstanceFleetInstanceTypeConfigArgs
            {
                BidPriceAsPercentageOfOnDemandPrice = 100,
                EbsConfigs = new[]
                {
                    new Aws.Emr.Inputs.InstanceFleetInstanceTypeConfigEbsConfigArgs
                    {
                        Size = 100,
                        Type = "gp2",
                        VolumesPerInstance = 1,
                    },
                },
                InstanceType = "m4.xlarge",
                WeightedCapacity = 1,
            },
            new Aws.Emr.Inputs.InstanceFleetInstanceTypeConfigArgs
            {
                BidPriceAsPercentageOfOnDemandPrice = 100,
                EbsConfigs = new[]
                {
                    new Aws.Emr.Inputs.InstanceFleetInstanceTypeConfigEbsConfigArgs
                    {
                        Size = 100,
                        Type = "gp2",
                        VolumesPerInstance = 1,
                    },
                },
                InstanceType = "m4.2xlarge",
                WeightedCapacity = 2,
            },
        },
        LaunchSpecifications = new Aws.Emr.Inputs.InstanceFleetLaunchSpecificationsArgs
        {
            SpotSpecifications = new[]
            {
                new Aws.Emr.Inputs.InstanceFleetLaunchSpecificationsSpotSpecificationArgs
                {
                    AllocationStrategy = "capacity-optimized",
                    BlockDurationMinutes = 0,
                    TimeoutAction = "TERMINATE_CLUSTER",
                    TimeoutDurationMinutes = 10,
                },
            },
        },
        Name = "task fleet",
        TargetOnDemandCapacity = 1,
        TargetSpotCapacity = 1,
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import com.pulumi.aws.emr.inputs.ClusterMasterInstanceFleetArgs;
import com.pulumi.aws.emr.inputs.ClusterCoreInstanceFleetArgs;
import com.pulumi.aws.emr.inputs.ClusterCoreInstanceFleetLaunchSpecificationsArgs;
import com.pulumi.aws.emr.InstanceFleet;
import com.pulumi.aws.emr.InstanceFleetArgs;
import com.pulumi.aws.emr.inputs.InstanceFleetInstanceTypeConfigArgs;
import com.pulumi.aws.emr.inputs.InstanceFleetLaunchSpecificationsArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Cluster("example", ClusterArgs.builder()
            .masterInstanceFleet(ClusterMasterInstanceFleetArgs.builder()
                .instanceTypeConfigs(ClusterMasterInstanceFleetInstanceTypeConfigArgs.builder()
                    .instanceType("m4.xlarge")
                    .build())
                .targetOnDemandCapacity(1)
                .build())
            .coreInstanceFleet(ClusterCoreInstanceFleetArgs.builder()
                .instanceTypeConfigs(                
                    ClusterCoreInstanceFleetInstanceTypeConfigArgs.builder()
                        .bidPriceAsPercentageOfOnDemandPrice(80)
                        .ebsConfigs(ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs.builder()
                            .size(100)
                            .type("gp2")
                            .volumesPerInstance(1)
                            .build())
                        .instanceType("m3.xlarge")
                        .weightedCapacity(1)
                        .build(),
                    ClusterCoreInstanceFleetInstanceTypeConfigArgs.builder()
                        .bidPriceAsPercentageOfOnDemandPrice(100)
                        .ebsConfigs(ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs.builder()
                            .size(100)
                            .type("gp2")
                            .volumesPerInstance(1)
                            .build())
                        .instanceType("m4.xlarge")
                        .weightedCapacity(1)
                        .build(),
                    ClusterCoreInstanceFleetInstanceTypeConfigArgs.builder()
                        .bidPriceAsPercentageOfOnDemandPrice(100)
                        .ebsConfigs(ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs.builder()
                            .size(100)
                            .type("gp2")
                            .volumesPerInstance(1)
                            .build())
                        .instanceType("m4.2xlarge")
                        .weightedCapacity(2)
                        .build())
                .launchSpecifications(ClusterCoreInstanceFleetLaunchSpecificationsArgs.builder()
                    .spotSpecifications(ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArgs.builder()
                        .allocationStrategy("capacity-optimized")
                        .blockDurationMinutes(0)
                        .timeoutAction("SWITCH_TO_ON_DEMAND")
                        .timeoutDurationMinutes(10)
                        .build())
                    .build())
                .name("core fleet")
                .targetOnDemandCapacity(2)
                .targetSpotCapacity(2)
                .build())
            .build());

        var task = new InstanceFleet("task", InstanceFleetArgs.builder()
            .clusterId(example.id())
            .instanceTypeConfigs(            
                InstanceFleetInstanceTypeConfigArgs.builder()
                    .bidPriceAsPercentageOfOnDemandPrice(100)
                    .ebsConfigs(InstanceFleetInstanceTypeConfigEbsConfigArgs.builder()
                        .size(100)
                        .type("gp2")
                        .volumesPerInstance(1)
                        .build())
                    .instanceType("m4.xlarge")
                    .weightedCapacity(1)
                    .build(),
                InstanceFleetInstanceTypeConfigArgs.builder()
                    .bidPriceAsPercentageOfOnDemandPrice(100)
                    .ebsConfigs(InstanceFleetInstanceTypeConfigEbsConfigArgs.builder()
                        .size(100)
                        .type("gp2")
                        .volumesPerInstance(1)
                        .build())
                    .instanceType("m4.2xlarge")
                    .weightedCapacity(2)
                    .build())
            .launchSpecifications(InstanceFleetLaunchSpecificationsArgs.builder()
                .spotSpecifications(InstanceFleetLaunchSpecificationsSpotSpecificationArgs.builder()
                    .allocationStrategy("capacity-optimized")
                    .blockDurationMinutes(0)
                    .timeoutAction("TERMINATE_CLUSTER")
                    .timeoutDurationMinutes(10)
                    .build())
                .build())
            .name("task fleet")
            .targetOnDemandCapacity(1)
            .targetSpotCapacity(1)
            .build());

    }
}
Copy
resources:
  example:
    type: aws:emr:Cluster
    properties:
      masterInstanceFleet:
        instanceTypeConfigs:
          - instanceType: m4.xlarge
        targetOnDemandCapacity: 1
      coreInstanceFleet:
        instanceTypeConfigs:
          - bidPriceAsPercentageOfOnDemandPrice: 80
            ebsConfigs:
              - size: 100
                type: gp2
                volumesPerInstance: 1
            instanceType: m3.xlarge
            weightedCapacity: 1
          - bidPriceAsPercentageOfOnDemandPrice: 100
            ebsConfigs:
              - size: 100
                type: gp2
                volumesPerInstance: 1
            instanceType: m4.xlarge
            weightedCapacity: 1
          - bidPriceAsPercentageOfOnDemandPrice: 100
            ebsConfigs:
              - size: 100
                type: gp2
                volumesPerInstance: 1
            instanceType: m4.2xlarge
            weightedCapacity: 2
        launchSpecifications:
          spotSpecifications:
            - allocationStrategy: capacity-optimized
              blockDurationMinutes: 0
              timeoutAction: SWITCH_TO_ON_DEMAND
              timeoutDurationMinutes: 10
        name: core fleet
        targetOnDemandCapacity: 2
        targetSpotCapacity: 2
  task:
    type: aws:emr:InstanceFleet
    properties:
      clusterId: ${example.id}
      instanceTypeConfigs:
        - bidPriceAsPercentageOfOnDemandPrice: 100
          ebsConfigs:
            - size: 100
              type: gp2
              volumesPerInstance: 1
          instanceType: m4.xlarge
          weightedCapacity: 1
        - bidPriceAsPercentageOfOnDemandPrice: 100
          ebsConfigs:
            - size: 100
              type: gp2
              volumesPerInstance: 1
          instanceType: m4.2xlarge
          weightedCapacity: 2
      launchSpecifications:
        spotSpecifications:
          - allocationStrategy: capacity-optimized
            blockDurationMinutes: 0
            timeoutAction: TERMINATE_CLUSTER
            timeoutDurationMinutes: 10
      name: task fleet
      targetOnDemandCapacity: 1
      targetSpotCapacity: 1
Copy

Enable Debug Logging

Debug logging in EMR is implemented as a step. It is highly recommended that you utilize the resource options configuration with ignoreChanges if other steps are being managed outside of this provider.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.emr.Cluster("example", {steps: [{
    actionOnFailure: "TERMINATE_CLUSTER",
    name: "Setup Hadoop Debugging",
    hadoopJarStep: {
        jar: "command-runner.jar",
        args: ["state-pusher-script"],
    },
}]});
Copy
import pulumi
import pulumi_aws as aws

example = aws.emr.Cluster("example", steps=[{
    "action_on_failure": "TERMINATE_CLUSTER",
    "name": "Setup Hadoop Debugging",
    "hadoop_jar_step": {
        "jar": "command-runner.jar",
        "args": ["state-pusher-script"],
    },
}])
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "example", &emr.ClusterArgs{
			Steps: emr.ClusterStepArray{
				&emr.ClusterStepArgs{
					ActionOnFailure: pulumi.String("TERMINATE_CLUSTER"),
					Name:            pulumi.String("Setup Hadoop Debugging"),
					HadoopJarStep: &emr.ClusterStepHadoopJarStepArgs{
						Jar: pulumi.String("command-runner.jar"),
						Args: pulumi.StringArray{
							pulumi.String("state-pusher-script"),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.Emr.Cluster("example", new()
    {
        Steps = new[]
        {
            new Aws.Emr.Inputs.ClusterStepArgs
            {
                ActionOnFailure = "TERMINATE_CLUSTER",
                Name = "Setup Hadoop Debugging",
                HadoopJarStep = new Aws.Emr.Inputs.ClusterStepHadoopJarStepArgs
                {
                    Jar = "command-runner.jar",
                    Args = new[]
                    {
                        "state-pusher-script",
                    },
                },
            },
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import com.pulumi.aws.emr.inputs.ClusterStepArgs;
import com.pulumi.aws.emr.inputs.ClusterStepHadoopJarStepArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new Cluster("example", ClusterArgs.builder()
            .steps(ClusterStepArgs.builder()
                .actionOnFailure("TERMINATE_CLUSTER")
                .name("Setup Hadoop Debugging")
                .hadoopJarStep(ClusterStepHadoopJarStepArgs.builder()
                    .jar("command-runner.jar")
                    .args("state-pusher-script")
                    .build())
                .build())
            .build());

    }
}
Copy
resources:
  example:
    type: aws:emr:Cluster
    properties:
      steps:
        - actionOnFailure: TERMINATE_CLUSTER
          name: Setup Hadoop Debugging
          hadoopJarStep:
            jar: command-runner.jar
            args:
              - state-pusher-script
Copy

Multiple Node Master Instance Group

Available in EMR version 5.23.0 and later, an EMR Cluster can be launched with three master nodes for high availability. Additional information about this functionality and its requirements can be found in the EMR Management Guide.

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

// This configuration is for illustrative purposes and highlights
// only relevant configurations for working with this functionality.
// Map public IP on launch must be enabled for public (Internet accessible) subnets
const example = new aws.ec2.Subnet("example", {mapPublicIpOnLaunch: true});
const exampleCluster = new aws.emr.Cluster("example", {
    releaseLabel: "emr-5.24.1",
    terminationProtection: true,
    ec2Attributes: {
        subnetId: example.id,
    },
    masterInstanceGroup: {
        instanceCount: 3,
    },
    coreInstanceGroup: {},
});
Copy
import pulumi
import pulumi_aws as aws

# This configuration is for illustrative purposes and highlights
# only relevant configurations for working with this functionality.
# Map public IP on launch must be enabled for public (Internet accessible) subnets
example = aws.ec2.Subnet("example", map_public_ip_on_launch=True)
example_cluster = aws.emr.Cluster("example",
    release_label="emr-5.24.1",
    termination_protection=True,
    ec2_attributes={
        "subnet_id": example.id,
    },
    master_instance_group={
        "instance_count": 3,
    },
    core_instance_group={})
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		// This configuration is for illustrative purposes and highlights
		// only relevant configurations for working with this functionality.
		// Map public IP on launch must be enabled for public (Internet accessible) subnets
		example, err := ec2.NewSubnet(ctx, "example", &ec2.SubnetArgs{
			MapPublicIpOnLaunch: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		_, err = emr.NewCluster(ctx, "example", &emr.ClusterArgs{
			ReleaseLabel:          pulumi.String("emr-5.24.1"),
			TerminationProtection: pulumi.Bool(true),
			Ec2Attributes: &emr.ClusterEc2AttributesArgs{
				SubnetId: example.ID(),
			},
			MasterInstanceGroup: &emr.ClusterMasterInstanceGroupArgs{
				InstanceCount: pulumi.Int(3),
			},
			CoreInstanceGroup: &emr.ClusterCoreInstanceGroupArgs{},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    // This configuration is for illustrative purposes and highlights
    // only relevant configurations for working with this functionality.
    // Map public IP on launch must be enabled for public (Internet accessible) subnets
    var example = new Aws.Ec2.Subnet("example", new()
    {
        MapPublicIpOnLaunch = true,
    });

    var exampleCluster = new Aws.Emr.Cluster("example", new()
    {
        ReleaseLabel = "emr-5.24.1",
        TerminationProtection = true,
        Ec2Attributes = new Aws.Emr.Inputs.ClusterEc2AttributesArgs
        {
            SubnetId = example.Id,
        },
        MasterInstanceGroup = new Aws.Emr.Inputs.ClusterMasterInstanceGroupArgs
        {
            InstanceCount = 3,
        },
        CoreInstanceGroup = null,
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.Subnet;
import com.pulumi.aws.ec2.SubnetArgs;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import com.pulumi.aws.emr.inputs.ClusterEc2AttributesArgs;
import com.pulumi.aws.emr.inputs.ClusterMasterInstanceGroupArgs;
import com.pulumi.aws.emr.inputs.ClusterCoreInstanceGroupArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        // This configuration is for illustrative purposes and highlights
        // only relevant configurations for working with this functionality.
        // Map public IP on launch must be enabled for public (Internet accessible) subnets
        var example = new Subnet("example", SubnetArgs.builder()
            .mapPublicIpOnLaunch(true)
            .build());

        var exampleCluster = new Cluster("exampleCluster", ClusterArgs.builder()
            .releaseLabel("emr-5.24.1")
            .terminationProtection(true)
            .ec2Attributes(ClusterEc2AttributesArgs.builder()
                .subnetId(example.id())
                .build())
            .masterInstanceGroup(ClusterMasterInstanceGroupArgs.builder()
                .instanceCount(3)
                .build())
            .coreInstanceGroup()
            .build());

    }
}
Copy
resources:
  # This configuration is for illustrative purposes and highlights
  # only relevant configurations for working with this functionality.

  # Map public IP on launch must be enabled for public (Internet accessible) subnets
  example:
    type: aws:ec2:Subnet
    properties:
      mapPublicIpOnLaunch: true
  exampleCluster:
    type: aws:emr:Cluster
    name: example
    properties:
      releaseLabel: emr-5.24.1
      terminationProtection: true
      ec2Attributes:
        subnetId: ${example.id}
      masterInstanceGroup:
        instanceCount: 3
      coreInstanceGroup: {}
Copy

Create Cluster Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new Cluster(name: string, args: ClusterArgs, opts?: CustomResourceOptions);
@overload
def Cluster(resource_name: str,
            args: ClusterArgs,
            opts: Optional[ResourceOptions] = None)

@overload
def Cluster(resource_name: str,
            opts: Optional[ResourceOptions] = None,
            release_label: Optional[str] = None,
            service_role: Optional[str] = None,
            core_instance_fleet: Optional[ClusterCoreInstanceFleetArgs] = None,
            configurations_json: Optional[str] = None,
            log_uri: Optional[str] = None,
            configurations: Optional[str] = None,
            master_instance_fleet: Optional[ClusterMasterInstanceFleetArgs] = None,
            additional_info: Optional[str] = None,
            core_instance_group: Optional[ClusterCoreInstanceGroupArgs] = None,
            custom_ami_id: Optional[str] = None,
            ebs_root_volume_size: Optional[int] = None,
            ec2_attributes: Optional[ClusterEc2AttributesArgs] = None,
            keep_job_flow_alive_when_no_steps: Optional[bool] = None,
            master_instance_group: Optional[ClusterMasterInstanceGroupArgs] = None,
            list_steps_states: Optional[Sequence[str]] = None,
            log_encryption_kms_key_id: Optional[str] = None,
            bootstrap_actions: Optional[Sequence[ClusterBootstrapActionArgs]] = None,
            autoscaling_role: Optional[str] = None,
            kerberos_attributes: Optional[ClusterKerberosAttributesArgs] = None,
            name: Optional[str] = None,
            placement_group_configs: Optional[Sequence[ClusterPlacementGroupConfigArgs]] = None,
            auto_termination_policy: Optional[ClusterAutoTerminationPolicyArgs] = None,
            scale_down_behavior: Optional[str] = None,
            security_configuration: Optional[str] = None,
            applications: Optional[Sequence[str]] = None,
            step_concurrency_level: Optional[int] = None,
            steps: Optional[Sequence[ClusterStepArgs]] = None,
            tags: Optional[Mapping[str, str]] = None,
            termination_protection: Optional[bool] = None,
            unhealthy_node_replacement: Optional[bool] = None,
            visible_to_all_users: Optional[bool] = None)
func NewCluster(ctx *Context, name string, args ClusterArgs, opts ...ResourceOption) (*Cluster, error)
public Cluster(string name, ClusterArgs args, CustomResourceOptions? opts = null)
public Cluster(String name, ClusterArgs args)
public Cluster(String name, ClusterArgs args, CustomResourceOptions options)
type: aws:emr:Cluster
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. ClusterArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. ClusterArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. ClusterArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. ClusterArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. ClusterArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Constructor example

The following reference example uses placeholder values for all input properties.

var exampleclusterResourceResourceFromEmrcluster = new Aws.Emr.Cluster("exampleclusterResourceResourceFromEmrcluster", new()
{
    ReleaseLabel = "string",
    ServiceRole = "string",
    CoreInstanceFleet = new Aws.Emr.Inputs.ClusterCoreInstanceFleetArgs
    {
        Id = "string",
        InstanceTypeConfigs = new[]
        {
            new Aws.Emr.Inputs.ClusterCoreInstanceFleetInstanceTypeConfigArgs
            {
                InstanceType = "string",
                BidPrice = "string",
                BidPriceAsPercentageOfOnDemandPrice = 0,
                Configurations = new[]
                {
                    new Aws.Emr.Inputs.ClusterCoreInstanceFleetInstanceTypeConfigConfigurationArgs
                    {
                        Classification = "string",
                        Properties = 
                        {
                            { "string", "string" },
                        },
                    },
                },
                EbsConfigs = new[]
                {
                    new Aws.Emr.Inputs.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs
                    {
                        Size = 0,
                        Type = "string",
                        Iops = 0,
                        VolumesPerInstance = 0,
                    },
                },
                WeightedCapacity = 0,
            },
        },
        LaunchSpecifications = new Aws.Emr.Inputs.ClusterCoreInstanceFleetLaunchSpecificationsArgs
        {
            OnDemandSpecifications = new[]
            {
                new Aws.Emr.Inputs.ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs
                {
                    AllocationStrategy = "string",
                },
            },
            SpotSpecifications = new[]
            {
                new Aws.Emr.Inputs.ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArgs
                {
                    AllocationStrategy = "string",
                    TimeoutAction = "string",
                    TimeoutDurationMinutes = 0,
                    BlockDurationMinutes = 0,
                },
            },
        },
        Name = "string",
        ProvisionedOnDemandCapacity = 0,
        ProvisionedSpotCapacity = 0,
        TargetOnDemandCapacity = 0,
        TargetSpotCapacity = 0,
    },
    ConfigurationsJson = "string",
    LogUri = "string",
    Configurations = "string",
    MasterInstanceFleet = new Aws.Emr.Inputs.ClusterMasterInstanceFleetArgs
    {
        Id = "string",
        InstanceTypeConfigs = new[]
        {
            new Aws.Emr.Inputs.ClusterMasterInstanceFleetInstanceTypeConfigArgs
            {
                InstanceType = "string",
                BidPrice = "string",
                BidPriceAsPercentageOfOnDemandPrice = 0,
                Configurations = new[]
                {
                    new Aws.Emr.Inputs.ClusterMasterInstanceFleetInstanceTypeConfigConfigurationArgs
                    {
                        Classification = "string",
                        Properties = 
                        {
                            { "string", "string" },
                        },
                    },
                },
                EbsConfigs = new[]
                {
                    new Aws.Emr.Inputs.ClusterMasterInstanceFleetInstanceTypeConfigEbsConfigArgs
                    {
                        Size = 0,
                        Type = "string",
                        Iops = 0,
                        VolumesPerInstance = 0,
                    },
                },
                WeightedCapacity = 0,
            },
        },
        LaunchSpecifications = new Aws.Emr.Inputs.ClusterMasterInstanceFleetLaunchSpecificationsArgs
        {
            OnDemandSpecifications = new[]
            {
                new Aws.Emr.Inputs.ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs
                {
                    AllocationStrategy = "string",
                },
            },
            SpotSpecifications = new[]
            {
                new Aws.Emr.Inputs.ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecificationArgs
                {
                    AllocationStrategy = "string",
                    TimeoutAction = "string",
                    TimeoutDurationMinutes = 0,
                    BlockDurationMinutes = 0,
                },
            },
        },
        Name = "string",
        ProvisionedOnDemandCapacity = 0,
        ProvisionedSpotCapacity = 0,
        TargetOnDemandCapacity = 0,
        TargetSpotCapacity = 0,
    },
    AdditionalInfo = "string",
    CoreInstanceGroup = new Aws.Emr.Inputs.ClusterCoreInstanceGroupArgs
    {
        InstanceType = "string",
        AutoscalingPolicy = "string",
        BidPrice = "string",
        EbsConfigs = new[]
        {
            new Aws.Emr.Inputs.ClusterCoreInstanceGroupEbsConfigArgs
            {
                Size = 0,
                Type = "string",
                Iops = 0,
                Throughput = 0,
                VolumesPerInstance = 0,
            },
        },
        Id = "string",
        InstanceCount = 0,
        Name = "string",
    },
    CustomAmiId = "string",
    EbsRootVolumeSize = 0,
    Ec2Attributes = new Aws.Emr.Inputs.ClusterEc2AttributesArgs
    {
        InstanceProfile = "string",
        AdditionalMasterSecurityGroups = "string",
        AdditionalSlaveSecurityGroups = "string",
        EmrManagedMasterSecurityGroup = "string",
        EmrManagedSlaveSecurityGroup = "string",
        KeyName = "string",
        ServiceAccessSecurityGroup = "string",
        SubnetId = "string",
        SubnetIds = new[]
        {
            "string",
        },
    },
    KeepJobFlowAliveWhenNoSteps = false,
    MasterInstanceGroup = new Aws.Emr.Inputs.ClusterMasterInstanceGroupArgs
    {
        InstanceType = "string",
        BidPrice = "string",
        EbsConfigs = new[]
        {
            new Aws.Emr.Inputs.ClusterMasterInstanceGroupEbsConfigArgs
            {
                Size = 0,
                Type = "string",
                Iops = 0,
                Throughput = 0,
                VolumesPerInstance = 0,
            },
        },
        Id = "string",
        InstanceCount = 0,
        Name = "string",
    },
    ListStepsStates = new[]
    {
        "string",
    },
    LogEncryptionKmsKeyId = "string",
    BootstrapActions = new[]
    {
        new Aws.Emr.Inputs.ClusterBootstrapActionArgs
        {
            Name = "string",
            Path = "string",
            Args = new[]
            {
                "string",
            },
        },
    },
    AutoscalingRole = "string",
    KerberosAttributes = new Aws.Emr.Inputs.ClusterKerberosAttributesArgs
    {
        KdcAdminPassword = "string",
        Realm = "string",
        AdDomainJoinPassword = "string",
        AdDomainJoinUser = "string",
        CrossRealmTrustPrincipalPassword = "string",
    },
    Name = "string",
    PlacementGroupConfigs = new[]
    {
        new Aws.Emr.Inputs.ClusterPlacementGroupConfigArgs
        {
            InstanceRole = "string",
            PlacementStrategy = "string",
        },
    },
    AutoTerminationPolicy = new Aws.Emr.Inputs.ClusterAutoTerminationPolicyArgs
    {
        IdleTimeout = 0,
    },
    ScaleDownBehavior = "string",
    SecurityConfiguration = "string",
    Applications = new[]
    {
        "string",
    },
    StepConcurrencyLevel = 0,
    Steps = new[]
    {
        new Aws.Emr.Inputs.ClusterStepArgs
        {
            ActionOnFailure = "string",
            HadoopJarStep = new Aws.Emr.Inputs.ClusterStepHadoopJarStepArgs
            {
                Jar = "string",
                Args = new[]
                {
                    "string",
                },
                MainClass = "string",
                Properties = 
                {
                    { "string", "string" },
                },
            },
            Name = "string",
        },
    },
    Tags = 
    {
        { "string", "string" },
    },
    TerminationProtection = false,
    UnhealthyNodeReplacement = false,
    VisibleToAllUsers = false,
});
Copy
example, err := emr.NewCluster(ctx, "exampleclusterResourceResourceFromEmrcluster", &emr.ClusterArgs{
	ReleaseLabel: pulumi.String("string"),
	ServiceRole:  pulumi.String("string"),
	CoreInstanceFleet: &emr.ClusterCoreInstanceFleetArgs{
		Id: pulumi.String("string"),
		InstanceTypeConfigs: emr.ClusterCoreInstanceFleetInstanceTypeConfigArray{
			&emr.ClusterCoreInstanceFleetInstanceTypeConfigArgs{
				InstanceType:                        pulumi.String("string"),
				BidPrice:                            pulumi.String("string"),
				BidPriceAsPercentageOfOnDemandPrice: pulumi.Float64(0),
				Configurations: emr.ClusterCoreInstanceFleetInstanceTypeConfigConfigurationArray{
					&emr.ClusterCoreInstanceFleetInstanceTypeConfigConfigurationArgs{
						Classification: pulumi.String("string"),
						Properties: pulumi.StringMap{
							"string": pulumi.String("string"),
						},
					},
				},
				EbsConfigs: emr.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArray{
					&emr.ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs{
						Size:               pulumi.Int(0),
						Type:               pulumi.String("string"),
						Iops:               pulumi.Int(0),
						VolumesPerInstance: pulumi.Int(0),
					},
				},
				WeightedCapacity: pulumi.Int(0),
			},
		},
		LaunchSpecifications: &emr.ClusterCoreInstanceFleetLaunchSpecificationsArgs{
			OnDemandSpecifications: emr.ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecificationArray{
				&emr.ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs{
					AllocationStrategy: pulumi.String("string"),
				},
			},
			SpotSpecifications: emr.ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArray{
				&emr.ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArgs{
					AllocationStrategy:     pulumi.String("string"),
					TimeoutAction:          pulumi.String("string"),
					TimeoutDurationMinutes: pulumi.Int(0),
					BlockDurationMinutes:   pulumi.Int(0),
				},
			},
		},
		Name:                        pulumi.String("string"),
		ProvisionedOnDemandCapacity: pulumi.Int(0),
		ProvisionedSpotCapacity:     pulumi.Int(0),
		TargetOnDemandCapacity:      pulumi.Int(0),
		TargetSpotCapacity:          pulumi.Int(0),
	},
	ConfigurationsJson: pulumi.String("string"),
	LogUri:             pulumi.String("string"),
	Configurations:     pulumi.String("string"),
	MasterInstanceFleet: &emr.ClusterMasterInstanceFleetArgs{
		Id: pulumi.String("string"),
		InstanceTypeConfigs: emr.ClusterMasterInstanceFleetInstanceTypeConfigArray{
			&emr.ClusterMasterInstanceFleetInstanceTypeConfigArgs{
				InstanceType:                        pulumi.String("string"),
				BidPrice:                            pulumi.String("string"),
				BidPriceAsPercentageOfOnDemandPrice: pulumi.Float64(0),
				Configurations: emr.ClusterMasterInstanceFleetInstanceTypeConfigConfigurationArray{
					&emr.ClusterMasterInstanceFleetInstanceTypeConfigConfigurationArgs{
						Classification: pulumi.String("string"),
						Properties: pulumi.StringMap{
							"string": pulumi.String("string"),
						},
					},
				},
				EbsConfigs: emr.ClusterMasterInstanceFleetInstanceTypeConfigEbsConfigArray{
					&emr.ClusterMasterInstanceFleetInstanceTypeConfigEbsConfigArgs{
						Size:               pulumi.Int(0),
						Type:               pulumi.String("string"),
						Iops:               pulumi.Int(0),
						VolumesPerInstance: pulumi.Int(0),
					},
				},
				WeightedCapacity: pulumi.Int(0),
			},
		},
		LaunchSpecifications: &emr.ClusterMasterInstanceFleetLaunchSpecificationsArgs{
			OnDemandSpecifications: emr.ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecificationArray{
				&emr.ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs{
					AllocationStrategy: pulumi.String("string"),
				},
			},
			SpotSpecifications: emr.ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecificationArray{
				&emr.ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecificationArgs{
					AllocationStrategy:     pulumi.String("string"),
					TimeoutAction:          pulumi.String("string"),
					TimeoutDurationMinutes: pulumi.Int(0),
					BlockDurationMinutes:   pulumi.Int(0),
				},
			},
		},
		Name:                        pulumi.String("string"),
		ProvisionedOnDemandCapacity: pulumi.Int(0),
		ProvisionedSpotCapacity:     pulumi.Int(0),
		TargetOnDemandCapacity:      pulumi.Int(0),
		TargetSpotCapacity:          pulumi.Int(0),
	},
	AdditionalInfo: pulumi.String("string"),
	CoreInstanceGroup: &emr.ClusterCoreInstanceGroupArgs{
		InstanceType:      pulumi.String("string"),
		AutoscalingPolicy: pulumi.String("string"),
		BidPrice:          pulumi.String("string"),
		EbsConfigs: emr.ClusterCoreInstanceGroupEbsConfigArray{
			&emr.ClusterCoreInstanceGroupEbsConfigArgs{
				Size:               pulumi.Int(0),
				Type:               pulumi.String("string"),
				Iops:               pulumi.Int(0),
				Throughput:         pulumi.Int(0),
				VolumesPerInstance: pulumi.Int(0),
			},
		},
		Id:            pulumi.String("string"),
		InstanceCount: pulumi.Int(0),
		Name:          pulumi.String("string"),
	},
	CustomAmiId:       pulumi.String("string"),
	EbsRootVolumeSize: pulumi.Int(0),
	Ec2Attributes: &emr.ClusterEc2AttributesArgs{
		InstanceProfile:                pulumi.String("string"),
		AdditionalMasterSecurityGroups: pulumi.String("string"),
		AdditionalSlaveSecurityGroups:  pulumi.String("string"),
		EmrManagedMasterSecurityGroup:  pulumi.String("string"),
		EmrManagedSlaveSecurityGroup:   pulumi.String("string"),
		KeyName:                        pulumi.String("string"),
		ServiceAccessSecurityGroup:     pulumi.String("string"),
		SubnetId:                       pulumi.String("string"),
		SubnetIds: pulumi.StringArray{
			pulumi.String("string"),
		},
	},
	KeepJobFlowAliveWhenNoSteps: pulumi.Bool(false),
	MasterInstanceGroup: &emr.ClusterMasterInstanceGroupArgs{
		InstanceType: pulumi.String("string"),
		BidPrice:     pulumi.String("string"),
		EbsConfigs: emr.ClusterMasterInstanceGroupEbsConfigArray{
			&emr.ClusterMasterInstanceGroupEbsConfigArgs{
				Size:               pulumi.Int(0),
				Type:               pulumi.String("string"),
				Iops:               pulumi.Int(0),
				Throughput:         pulumi.Int(0),
				VolumesPerInstance: pulumi.Int(0),
			},
		},
		Id:            pulumi.String("string"),
		InstanceCount: pulumi.Int(0),
		Name:          pulumi.String("string"),
	},
	ListStepsStates: pulumi.StringArray{
		pulumi.String("string"),
	},
	LogEncryptionKmsKeyId: pulumi.String("string"),
	BootstrapActions: emr.ClusterBootstrapActionArray{
		&emr.ClusterBootstrapActionArgs{
			Name: pulumi.String("string"),
			Path: pulumi.String("string"),
			Args: pulumi.StringArray{
				pulumi.String("string"),
			},
		},
	},
	AutoscalingRole: pulumi.String("string"),
	KerberosAttributes: &emr.ClusterKerberosAttributesArgs{
		KdcAdminPassword:                 pulumi.String("string"),
		Realm:                            pulumi.String("string"),
		AdDomainJoinPassword:             pulumi.String("string"),
		AdDomainJoinUser:                 pulumi.String("string"),
		CrossRealmTrustPrincipalPassword: pulumi.String("string"),
	},
	Name: pulumi.String("string"),
	PlacementGroupConfigs: emr.ClusterPlacementGroupConfigArray{
		&emr.ClusterPlacementGroupConfigArgs{
			InstanceRole:      pulumi.String("string"),
			PlacementStrategy: pulumi.String("string"),
		},
	},
	AutoTerminationPolicy: &emr.ClusterAutoTerminationPolicyArgs{
		IdleTimeout: pulumi.Int(0),
	},
	ScaleDownBehavior:     pulumi.String("string"),
	SecurityConfiguration: pulumi.String("string"),
	Applications: pulumi.StringArray{
		pulumi.String("string"),
	},
	StepConcurrencyLevel: pulumi.Int(0),
	Steps: emr.ClusterStepArray{
		&emr.ClusterStepArgs{
			ActionOnFailure: pulumi.String("string"),
			HadoopJarStep: &emr.ClusterStepHadoopJarStepArgs{
				Jar: pulumi.String("string"),
				Args: pulumi.StringArray{
					pulumi.String("string"),
				},
				MainClass: pulumi.String("string"),
				Properties: pulumi.StringMap{
					"string": pulumi.String("string"),
				},
			},
			Name: pulumi.String("string"),
		},
	},
	Tags: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	TerminationProtection:    pulumi.Bool(false),
	UnhealthyNodeReplacement: pulumi.Bool(false),
	VisibleToAllUsers:        pulumi.Bool(false),
})
Copy
var exampleclusterResourceResourceFromEmrcluster = new Cluster("exampleclusterResourceResourceFromEmrcluster", ClusterArgs.builder()
    .releaseLabel("string")
    .serviceRole("string")
    .coreInstanceFleet(ClusterCoreInstanceFleetArgs.builder()
        .id("string")
        .instanceTypeConfigs(ClusterCoreInstanceFleetInstanceTypeConfigArgs.builder()
            .instanceType("string")
            .bidPrice("string")
            .bidPriceAsPercentageOfOnDemandPrice(0)
            .configurations(ClusterCoreInstanceFleetInstanceTypeConfigConfigurationArgs.builder()
                .classification("string")
                .properties(Map.of("string", "string"))
                .build())
            .ebsConfigs(ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs.builder()
                .size(0)
                .type("string")
                .iops(0)
                .volumesPerInstance(0)
                .build())
            .weightedCapacity(0)
            .build())
        .launchSpecifications(ClusterCoreInstanceFleetLaunchSpecificationsArgs.builder()
            .onDemandSpecifications(ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs.builder()
                .allocationStrategy("string")
                .build())
            .spotSpecifications(ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArgs.builder()
                .allocationStrategy("string")
                .timeoutAction("string")
                .timeoutDurationMinutes(0)
                .blockDurationMinutes(0)
                .build())
            .build())
        .name("string")
        .provisionedOnDemandCapacity(0)
        .provisionedSpotCapacity(0)
        .targetOnDemandCapacity(0)
        .targetSpotCapacity(0)
        .build())
    .configurationsJson("string")
    .logUri("string")
    .configurations("string")
    .masterInstanceFleet(ClusterMasterInstanceFleetArgs.builder()
        .id("string")
        .instanceTypeConfigs(ClusterMasterInstanceFleetInstanceTypeConfigArgs.builder()
            .instanceType("string")
            .bidPrice("string")
            .bidPriceAsPercentageOfOnDemandPrice(0)
            .configurations(ClusterMasterInstanceFleetInstanceTypeConfigConfigurationArgs.builder()
                .classification("string")
                .properties(Map.of("string", "string"))
                .build())
            .ebsConfigs(ClusterMasterInstanceFleetInstanceTypeConfigEbsConfigArgs.builder()
                .size(0)
                .type("string")
                .iops(0)
                .volumesPerInstance(0)
                .build())
            .weightedCapacity(0)
            .build())
        .launchSpecifications(ClusterMasterInstanceFleetLaunchSpecificationsArgs.builder()
            .onDemandSpecifications(ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs.builder()
                .allocationStrategy("string")
                .build())
            .spotSpecifications(ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecificationArgs.builder()
                .allocationStrategy("string")
                .timeoutAction("string")
                .timeoutDurationMinutes(0)
                .blockDurationMinutes(0)
                .build())
            .build())
        .name("string")
        .provisionedOnDemandCapacity(0)
        .provisionedSpotCapacity(0)
        .targetOnDemandCapacity(0)
        .targetSpotCapacity(0)
        .build())
    .additionalInfo("string")
    .coreInstanceGroup(ClusterCoreInstanceGroupArgs.builder()
        .instanceType("string")
        .autoscalingPolicy("string")
        .bidPrice("string")
        .ebsConfigs(ClusterCoreInstanceGroupEbsConfigArgs.builder()
            .size(0)
            .type("string")
            .iops(0)
            .throughput(0)
            .volumesPerInstance(0)
            .build())
        .id("string")
        .instanceCount(0)
        .name("string")
        .build())
    .customAmiId("string")
    .ebsRootVolumeSize(0)
    .ec2Attributes(ClusterEc2AttributesArgs.builder()
        .instanceProfile("string")
        .additionalMasterSecurityGroups("string")
        .additionalSlaveSecurityGroups("string")
        .emrManagedMasterSecurityGroup("string")
        .emrManagedSlaveSecurityGroup("string")
        .keyName("string")
        .serviceAccessSecurityGroup("string")
        .subnetId("string")
        .subnetIds("string")
        .build())
    .keepJobFlowAliveWhenNoSteps(false)
    .masterInstanceGroup(ClusterMasterInstanceGroupArgs.builder()
        .instanceType("string")
        .bidPrice("string")
        .ebsConfigs(ClusterMasterInstanceGroupEbsConfigArgs.builder()
            .size(0)
            .type("string")
            .iops(0)
            .throughput(0)
            .volumesPerInstance(0)
            .build())
        .id("string")
        .instanceCount(0)
        .name("string")
        .build())
    .listStepsStates("string")
    .logEncryptionKmsKeyId("string")
    .bootstrapActions(ClusterBootstrapActionArgs.builder()
        .name("string")
        .path("string")
        .args("string")
        .build())
    .autoscalingRole("string")
    .kerberosAttributes(ClusterKerberosAttributesArgs.builder()
        .kdcAdminPassword("string")
        .realm("string")
        .adDomainJoinPassword("string")
        .adDomainJoinUser("string")
        .crossRealmTrustPrincipalPassword("string")
        .build())
    .name("string")
    .placementGroupConfigs(ClusterPlacementGroupConfigArgs.builder()
        .instanceRole("string")
        .placementStrategy("string")
        .build())
    .autoTerminationPolicy(ClusterAutoTerminationPolicyArgs.builder()
        .idleTimeout(0)
        .build())
    .scaleDownBehavior("string")
    .securityConfiguration("string")
    .applications("string")
    .stepConcurrencyLevel(0)
    .steps(ClusterStepArgs.builder()
        .actionOnFailure("string")
        .hadoopJarStep(ClusterStepHadoopJarStepArgs.builder()
            .jar("string")
            .args("string")
            .mainClass("string")
            .properties(Map.of("string", "string"))
            .build())
        .name("string")
        .build())
    .tags(Map.of("string", "string"))
    .terminationProtection(false)
    .unhealthyNodeReplacement(false)
    .visibleToAllUsers(false)
    .build());
Copy
examplecluster_resource_resource_from_emrcluster = aws.emr.Cluster("exampleclusterResourceResourceFromEmrcluster",
    release_label="string",
    service_role="string",
    core_instance_fleet={
        "id": "string",
        "instance_type_configs": [{
            "instance_type": "string",
            "bid_price": "string",
            "bid_price_as_percentage_of_on_demand_price": 0,
            "configurations": [{
                "classification": "string",
                "properties": {
                    "string": "string",
                },
            }],
            "ebs_configs": [{
                "size": 0,
                "type": "string",
                "iops": 0,
                "volumes_per_instance": 0,
            }],
            "weighted_capacity": 0,
        }],
        "launch_specifications": {
            "on_demand_specifications": [{
                "allocation_strategy": "string",
            }],
            "spot_specifications": [{
                "allocation_strategy": "string",
                "timeout_action": "string",
                "timeout_duration_minutes": 0,
                "block_duration_minutes": 0,
            }],
        },
        "name": "string",
        "provisioned_on_demand_capacity": 0,
        "provisioned_spot_capacity": 0,
        "target_on_demand_capacity": 0,
        "target_spot_capacity": 0,
    },
    configurations_json="string",
    log_uri="string",
    configurations="string",
    master_instance_fleet={
        "id": "string",
        "instance_type_configs": [{
            "instance_type": "string",
            "bid_price": "string",
            "bid_price_as_percentage_of_on_demand_price": 0,
            "configurations": [{
                "classification": "string",
                "properties": {
                    "string": "string",
                },
            }],
            "ebs_configs": [{
                "size": 0,
                "type": "string",
                "iops": 0,
                "volumes_per_instance": 0,
            }],
            "weighted_capacity": 0,
        }],
        "launch_specifications": {
            "on_demand_specifications": [{
                "allocation_strategy": "string",
            }],
            "spot_specifications": [{
                "allocation_strategy": "string",
                "timeout_action": "string",
                "timeout_duration_minutes": 0,
                "block_duration_minutes": 0,
            }],
        },
        "name": "string",
        "provisioned_on_demand_capacity": 0,
        "provisioned_spot_capacity": 0,
        "target_on_demand_capacity": 0,
        "target_spot_capacity": 0,
    },
    additional_info="string",
    core_instance_group={
        "instance_type": "string",
        "autoscaling_policy": "string",
        "bid_price": "string",
        "ebs_configs": [{
            "size": 0,
            "type": "string",
            "iops": 0,
            "throughput": 0,
            "volumes_per_instance": 0,
        }],
        "id": "string",
        "instance_count": 0,
        "name": "string",
    },
    custom_ami_id="string",
    ebs_root_volume_size=0,
    ec2_attributes={
        "instance_profile": "string",
        "additional_master_security_groups": "string",
        "additional_slave_security_groups": "string",
        "emr_managed_master_security_group": "string",
        "emr_managed_slave_security_group": "string",
        "key_name": "string",
        "service_access_security_group": "string",
        "subnet_id": "string",
        "subnet_ids": ["string"],
    },
    keep_job_flow_alive_when_no_steps=False,
    master_instance_group={
        "instance_type": "string",
        "bid_price": "string",
        "ebs_configs": [{
            "size": 0,
            "type": "string",
            "iops": 0,
            "throughput": 0,
            "volumes_per_instance": 0,
        }],
        "id": "string",
        "instance_count": 0,
        "name": "string",
    },
    list_steps_states=["string"],
    log_encryption_kms_key_id="string",
    bootstrap_actions=[{
        "name": "string",
        "path": "string",
        "args": ["string"],
    }],
    autoscaling_role="string",
    kerberos_attributes={
        "kdc_admin_password": "string",
        "realm": "string",
        "ad_domain_join_password": "string",
        "ad_domain_join_user": "string",
        "cross_realm_trust_principal_password": "string",
    },
    name="string",
    placement_group_configs=[{
        "instance_role": "string",
        "placement_strategy": "string",
    }],
    auto_termination_policy={
        "idle_timeout": 0,
    },
    scale_down_behavior="string",
    security_configuration="string",
    applications=["string"],
    step_concurrency_level=0,
    steps=[{
        "action_on_failure": "string",
        "hadoop_jar_step": {
            "jar": "string",
            "args": ["string"],
            "main_class": "string",
            "properties": {
                "string": "string",
            },
        },
        "name": "string",
    }],
    tags={
        "string": "string",
    },
    termination_protection=False,
    unhealthy_node_replacement=False,
    visible_to_all_users=False)
Copy
const exampleclusterResourceResourceFromEmrcluster = new aws.emr.Cluster("exampleclusterResourceResourceFromEmrcluster", {
    releaseLabel: "string",
    serviceRole: "string",
    coreInstanceFleet: {
        id: "string",
        instanceTypeConfigs: [{
            instanceType: "string",
            bidPrice: "string",
            bidPriceAsPercentageOfOnDemandPrice: 0,
            configurations: [{
                classification: "string",
                properties: {
                    string: "string",
                },
            }],
            ebsConfigs: [{
                size: 0,
                type: "string",
                iops: 0,
                volumesPerInstance: 0,
            }],
            weightedCapacity: 0,
        }],
        launchSpecifications: {
            onDemandSpecifications: [{
                allocationStrategy: "string",
            }],
            spotSpecifications: [{
                allocationStrategy: "string",
                timeoutAction: "string",
                timeoutDurationMinutes: 0,
                blockDurationMinutes: 0,
            }],
        },
        name: "string",
        provisionedOnDemandCapacity: 0,
        provisionedSpotCapacity: 0,
        targetOnDemandCapacity: 0,
        targetSpotCapacity: 0,
    },
    configurationsJson: "string",
    logUri: "string",
    configurations: "string",
    masterInstanceFleet: {
        id: "string",
        instanceTypeConfigs: [{
            instanceType: "string",
            bidPrice: "string",
            bidPriceAsPercentageOfOnDemandPrice: 0,
            configurations: [{
                classification: "string",
                properties: {
                    string: "string",
                },
            }],
            ebsConfigs: [{
                size: 0,
                type: "string",
                iops: 0,
                volumesPerInstance: 0,
            }],
            weightedCapacity: 0,
        }],
        launchSpecifications: {
            onDemandSpecifications: [{
                allocationStrategy: "string",
            }],
            spotSpecifications: [{
                allocationStrategy: "string",
                timeoutAction: "string",
                timeoutDurationMinutes: 0,
                blockDurationMinutes: 0,
            }],
        },
        name: "string",
        provisionedOnDemandCapacity: 0,
        provisionedSpotCapacity: 0,
        targetOnDemandCapacity: 0,
        targetSpotCapacity: 0,
    },
    additionalInfo: "string",
    coreInstanceGroup: {
        instanceType: "string",
        autoscalingPolicy: "string",
        bidPrice: "string",
        ebsConfigs: [{
            size: 0,
            type: "string",
            iops: 0,
            throughput: 0,
            volumesPerInstance: 0,
        }],
        id: "string",
        instanceCount: 0,
        name: "string",
    },
    customAmiId: "string",
    ebsRootVolumeSize: 0,
    ec2Attributes: {
        instanceProfile: "string",
        additionalMasterSecurityGroups: "string",
        additionalSlaveSecurityGroups: "string",
        emrManagedMasterSecurityGroup: "string",
        emrManagedSlaveSecurityGroup: "string",
        keyName: "string",
        serviceAccessSecurityGroup: "string",
        subnetId: "string",
        subnetIds: ["string"],
    },
    keepJobFlowAliveWhenNoSteps: false,
    masterInstanceGroup: {
        instanceType: "string",
        bidPrice: "string",
        ebsConfigs: [{
            size: 0,
            type: "string",
            iops: 0,
            throughput: 0,
            volumesPerInstance: 0,
        }],
        id: "string",
        instanceCount: 0,
        name: "string",
    },
    listStepsStates: ["string"],
    logEncryptionKmsKeyId: "string",
    bootstrapActions: [{
        name: "string",
        path: "string",
        args: ["string"],
    }],
    autoscalingRole: "string",
    kerberosAttributes: {
        kdcAdminPassword: "string",
        realm: "string",
        adDomainJoinPassword: "string",
        adDomainJoinUser: "string",
        crossRealmTrustPrincipalPassword: "string",
    },
    name: "string",
    placementGroupConfigs: [{
        instanceRole: "string",
        placementStrategy: "string",
    }],
    autoTerminationPolicy: {
        idleTimeout: 0,
    },
    scaleDownBehavior: "string",
    securityConfiguration: "string",
    applications: ["string"],
    stepConcurrencyLevel: 0,
    steps: [{
        actionOnFailure: "string",
        hadoopJarStep: {
            jar: "string",
            args: ["string"],
            mainClass: "string",
            properties: {
                string: "string",
            },
        },
        name: "string",
    }],
    tags: {
        string: "string",
    },
    terminationProtection: false,
    unhealthyNodeReplacement: false,
    visibleToAllUsers: false,
});
Copy
type: aws:emr:Cluster
properties:
    additionalInfo: string
    applications:
        - string
    autoTerminationPolicy:
        idleTimeout: 0
    autoscalingRole: string
    bootstrapActions:
        - args:
            - string
          name: string
          path: string
    configurations: string
    configurationsJson: string
    coreInstanceFleet:
        id: string
        instanceTypeConfigs:
            - bidPrice: string
              bidPriceAsPercentageOfOnDemandPrice: 0
              configurations:
                - classification: string
                  properties:
                    string: string
              ebsConfigs:
                - iops: 0
                  size: 0
                  type: string
                  volumesPerInstance: 0
              instanceType: string
              weightedCapacity: 0
        launchSpecifications:
            onDemandSpecifications:
                - allocationStrategy: string
            spotSpecifications:
                - allocationStrategy: string
                  blockDurationMinutes: 0
                  timeoutAction: string
                  timeoutDurationMinutes: 0
        name: string
        provisionedOnDemandCapacity: 0
        provisionedSpotCapacity: 0
        targetOnDemandCapacity: 0
        targetSpotCapacity: 0
    coreInstanceGroup:
        autoscalingPolicy: string
        bidPrice: string
        ebsConfigs:
            - iops: 0
              size: 0
              throughput: 0
              type: string
              volumesPerInstance: 0
        id: string
        instanceCount: 0
        instanceType: string
        name: string
    customAmiId: string
    ebsRootVolumeSize: 0
    ec2Attributes:
        additionalMasterSecurityGroups: string
        additionalSlaveSecurityGroups: string
        emrManagedMasterSecurityGroup: string
        emrManagedSlaveSecurityGroup: string
        instanceProfile: string
        keyName: string
        serviceAccessSecurityGroup: string
        subnetId: string
        subnetIds:
            - string
    keepJobFlowAliveWhenNoSteps: false
    kerberosAttributes:
        adDomainJoinPassword: string
        adDomainJoinUser: string
        crossRealmTrustPrincipalPassword: string
        kdcAdminPassword: string
        realm: string
    listStepsStates:
        - string
    logEncryptionKmsKeyId: string
    logUri: string
    masterInstanceFleet:
        id: string
        instanceTypeConfigs:
            - bidPrice: string
              bidPriceAsPercentageOfOnDemandPrice: 0
              configurations:
                - classification: string
                  properties:
                    string: string
              ebsConfigs:
                - iops: 0
                  size: 0
                  type: string
                  volumesPerInstance: 0
              instanceType: string
              weightedCapacity: 0
        launchSpecifications:
            onDemandSpecifications:
                - allocationStrategy: string
            spotSpecifications:
                - allocationStrategy: string
                  blockDurationMinutes: 0
                  timeoutAction: string
                  timeoutDurationMinutes: 0
        name: string
        provisionedOnDemandCapacity: 0
        provisionedSpotCapacity: 0
        targetOnDemandCapacity: 0
        targetSpotCapacity: 0
    masterInstanceGroup:
        bidPrice: string
        ebsConfigs:
            - iops: 0
              size: 0
              throughput: 0
              type: string
              volumesPerInstance: 0
        id: string
        instanceCount: 0
        instanceType: string
        name: string
    name: string
    placementGroupConfigs:
        - instanceRole: string
          placementStrategy: string
    releaseLabel: string
    scaleDownBehavior: string
    securityConfiguration: string
    serviceRole: string
    stepConcurrencyLevel: 0
    steps:
        - actionOnFailure: string
          hadoopJarStep:
            args:
                - string
            jar: string
            mainClass: string
            properties:
                string: string
          name: string
    tags:
        string: string
    terminationProtection: false
    unhealthyNodeReplacement: false
    visibleToAllUsers: false
Copy

Cluster Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The Cluster resource accepts the following input properties:

ReleaseLabel
This property is required.
Changes to this property will trigger replacement.
string
Release label for the Amazon EMR release.
ServiceRole
This property is required.
Changes to this property will trigger replacement.
string

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

AdditionalInfo Changes to this property will trigger replacement. string
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
Applications Changes to this property will trigger replacement. List<string>
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
AutoTerminationPolicy ClusterAutoTerminationPolicy
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
AutoscalingRole Changes to this property will trigger replacement. string
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
BootstrapActions Changes to this property will trigger replacement. List<ClusterBootstrapAction>
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
Configurations Changes to this property will trigger replacement. string
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
ConfigurationsJson Changes to this property will trigger replacement. string

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
CoreInstanceFleet Changes to this property will trigger replacement. ClusterCoreInstanceFleet
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
CoreInstanceGroup Changes to this property will trigger replacement. ClusterCoreInstanceGroup
Configuration block to use an Instance Group for the core node type.
CustomAmiId Changes to this property will trigger replacement. string
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
EbsRootVolumeSize Changes to this property will trigger replacement. int
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
Ec2Attributes Changes to this property will trigger replacement. ClusterEc2Attributes
Attributes for the EC2 instances running the job flow. See below.
KeepJobFlowAliveWhenNoSteps Changes to this property will trigger replacement. bool
Switch on/off run cluster with no steps or when all steps are complete (default is on)
KerberosAttributes Changes to this property will trigger replacement. ClusterKerberosAttributes
Kerberos configuration for the cluster. See below.
ListStepsStates List<string>
List of step states used to filter returned steps
LogEncryptionKmsKeyId Changes to this property will trigger replacement. string
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
LogUri Changes to this property will trigger replacement. string
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
MasterInstanceFleet Changes to this property will trigger replacement. ClusterMasterInstanceFleet
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
MasterInstanceGroup Changes to this property will trigger replacement. ClusterMasterInstanceGroup
Configuration block to use an Instance Group for the master node type.
Name Changes to this property will trigger replacement. string
Name of the job flow.
PlacementGroupConfigs Changes to this property will trigger replacement. List<ClusterPlacementGroupConfig>
The specified placement group configuration for an Amazon EMR cluster.
ScaleDownBehavior Changes to this property will trigger replacement. string
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
SecurityConfiguration Changes to this property will trigger replacement. string
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
StepConcurrencyLevel int
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
Steps Changes to this property will trigger replacement. List<ClusterStep>
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
Tags Dictionary<string, string>
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TerminationProtection bool
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
UnhealthyNodeReplacement bool
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
VisibleToAllUsers bool
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
ReleaseLabel
This property is required.
Changes to this property will trigger replacement.
string
Release label for the Amazon EMR release.
ServiceRole
This property is required.
Changes to this property will trigger replacement.
string

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

AdditionalInfo Changes to this property will trigger replacement. string
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
Applications Changes to this property will trigger replacement. []string
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
AutoTerminationPolicy ClusterAutoTerminationPolicyArgs
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
AutoscalingRole Changes to this property will trigger replacement. string
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
BootstrapActions Changes to this property will trigger replacement. []ClusterBootstrapActionArgs
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
Configurations Changes to this property will trigger replacement. string
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
ConfigurationsJson Changes to this property will trigger replacement. string

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
CoreInstanceFleet Changes to this property will trigger replacement. ClusterCoreInstanceFleetArgs
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
CoreInstanceGroup Changes to this property will trigger replacement. ClusterCoreInstanceGroupArgs
Configuration block to use an Instance Group for the core node type.
CustomAmiId Changes to this property will trigger replacement. string
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
EbsRootVolumeSize Changes to this property will trigger replacement. int
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
Ec2Attributes Changes to this property will trigger replacement. ClusterEc2AttributesArgs
Attributes for the EC2 instances running the job flow. See below.
KeepJobFlowAliveWhenNoSteps Changes to this property will trigger replacement. bool
Switch on/off run cluster with no steps or when all steps are complete (default is on)
KerberosAttributes Changes to this property will trigger replacement. ClusterKerberosAttributesArgs
Kerberos configuration for the cluster. See below.
ListStepsStates []string
List of step states used to filter returned steps
LogEncryptionKmsKeyId Changes to this property will trigger replacement. string
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
LogUri Changes to this property will trigger replacement. string
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
MasterInstanceFleet Changes to this property will trigger replacement. ClusterMasterInstanceFleetArgs
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
MasterInstanceGroup Changes to this property will trigger replacement. ClusterMasterInstanceGroupArgs
Configuration block to use an Instance Group for the master node type.
Name Changes to this property will trigger replacement. string
Name of the job flow.
PlacementGroupConfigs Changes to this property will trigger replacement. []ClusterPlacementGroupConfigArgs
The specified placement group configuration for an Amazon EMR cluster.
ScaleDownBehavior Changes to this property will trigger replacement. string
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
SecurityConfiguration Changes to this property will trigger replacement. string
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
StepConcurrencyLevel int
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
Steps Changes to this property will trigger replacement. []ClusterStepArgs
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
Tags map[string]string
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TerminationProtection bool
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
UnhealthyNodeReplacement bool
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
VisibleToAllUsers bool
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
releaseLabel
This property is required.
Changes to this property will trigger replacement.
String
Release label for the Amazon EMR release.
serviceRole
This property is required.
Changes to this property will trigger replacement.
String

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

additionalInfo Changes to this property will trigger replacement. String
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
applications Changes to this property will trigger replacement. List<String>
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
autoTerminationPolicy ClusterAutoTerminationPolicy
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
autoscalingRole Changes to this property will trigger replacement. String
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
bootstrapActions Changes to this property will trigger replacement. List<ClusterBootstrapAction>
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
configurations Changes to this property will trigger replacement. String
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
configurationsJson Changes to this property will trigger replacement. String

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
coreInstanceFleet Changes to this property will trigger replacement. ClusterCoreInstanceFleet
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
coreInstanceGroup Changes to this property will trigger replacement. ClusterCoreInstanceGroup
Configuration block to use an Instance Group for the core node type.
customAmiId Changes to this property will trigger replacement. String
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
ebsRootVolumeSize Changes to this property will trigger replacement. Integer
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
ec2Attributes Changes to this property will trigger replacement. ClusterEc2Attributes
Attributes for the EC2 instances running the job flow. See below.
keepJobFlowAliveWhenNoSteps Changes to this property will trigger replacement. Boolean
Switch on/off run cluster with no steps or when all steps are complete (default is on)
kerberosAttributes Changes to this property will trigger replacement. ClusterKerberosAttributes
Kerberos configuration for the cluster. See below.
listStepsStates List<String>
List of step states used to filter returned steps
logEncryptionKmsKeyId Changes to this property will trigger replacement. String
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
logUri Changes to this property will trigger replacement. String
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
masterInstanceFleet Changes to this property will trigger replacement. ClusterMasterInstanceFleet
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
masterInstanceGroup Changes to this property will trigger replacement. ClusterMasterInstanceGroup
Configuration block to use an Instance Group for the master node type.
name Changes to this property will trigger replacement. String
Name of the job flow.
placementGroupConfigs Changes to this property will trigger replacement. List<ClusterPlacementGroupConfig>
The specified placement group configuration for an Amazon EMR cluster.
scaleDownBehavior Changes to this property will trigger replacement. String
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
securityConfiguration Changes to this property will trigger replacement. String
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
stepConcurrencyLevel Integer
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
steps Changes to this property will trigger replacement. List<ClusterStep>
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
tags Map<String,String>
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
terminationProtection Boolean
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
unhealthyNodeReplacement Boolean
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
visibleToAllUsers Boolean
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
releaseLabel
This property is required.
Changes to this property will trigger replacement.
string
Release label for the Amazon EMR release.
serviceRole
This property is required.
Changes to this property will trigger replacement.
string

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

additionalInfo Changes to this property will trigger replacement. string
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
applications Changes to this property will trigger replacement. string[]
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
autoTerminationPolicy ClusterAutoTerminationPolicy
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
autoscalingRole Changes to this property will trigger replacement. string
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
bootstrapActions Changes to this property will trigger replacement. ClusterBootstrapAction[]
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
configurations Changes to this property will trigger replacement. string
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
configurationsJson Changes to this property will trigger replacement. string

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
coreInstanceFleet Changes to this property will trigger replacement. ClusterCoreInstanceFleet
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
coreInstanceGroup Changes to this property will trigger replacement. ClusterCoreInstanceGroup
Configuration block to use an Instance Group for the core node type.
customAmiId Changes to this property will trigger replacement. string
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
ebsRootVolumeSize Changes to this property will trigger replacement. number
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
ec2Attributes Changes to this property will trigger replacement. ClusterEc2Attributes
Attributes for the EC2 instances running the job flow. See below.
keepJobFlowAliveWhenNoSteps Changes to this property will trigger replacement. boolean
Switch on/off run cluster with no steps or when all steps are complete (default is on)
kerberosAttributes Changes to this property will trigger replacement. ClusterKerberosAttributes
Kerberos configuration for the cluster. See below.
listStepsStates string[]
List of step states used to filter returned steps
logEncryptionKmsKeyId Changes to this property will trigger replacement. string
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
logUri Changes to this property will trigger replacement. string
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
masterInstanceFleet Changes to this property will trigger replacement. ClusterMasterInstanceFleet
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
masterInstanceGroup Changes to this property will trigger replacement. ClusterMasterInstanceGroup
Configuration block to use an Instance Group for the master node type.
name Changes to this property will trigger replacement. string
Name of the job flow.
placementGroupConfigs Changes to this property will trigger replacement. ClusterPlacementGroupConfig[]
The specified placement group configuration for an Amazon EMR cluster.
scaleDownBehavior Changes to this property will trigger replacement. string
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
securityConfiguration Changes to this property will trigger replacement. string
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
stepConcurrencyLevel number
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
steps Changes to this property will trigger replacement. ClusterStep[]
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
tags {[key: string]: string}
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
terminationProtection boolean
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
unhealthyNodeReplacement boolean
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
visibleToAllUsers boolean
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
release_label
This property is required.
Changes to this property will trigger replacement.
str
Release label for the Amazon EMR release.
service_role
This property is required.
Changes to this property will trigger replacement.
str

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

additional_info Changes to this property will trigger replacement. str
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
applications Changes to this property will trigger replacement. Sequence[str]
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
auto_termination_policy ClusterAutoTerminationPolicyArgs
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
autoscaling_role Changes to this property will trigger replacement. str
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
bootstrap_actions Changes to this property will trigger replacement. Sequence[ClusterBootstrapActionArgs]
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
configurations Changes to this property will trigger replacement. str
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
configurations_json Changes to this property will trigger replacement. str

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
core_instance_fleet Changes to this property will trigger replacement. ClusterCoreInstanceFleetArgs
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
core_instance_group Changes to this property will trigger replacement. ClusterCoreInstanceGroupArgs
Configuration block to use an Instance Group for the core node type.
custom_ami_id Changes to this property will trigger replacement. str
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
ebs_root_volume_size Changes to this property will trigger replacement. int
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
ec2_attributes Changes to this property will trigger replacement. ClusterEc2AttributesArgs
Attributes for the EC2 instances running the job flow. See below.
keep_job_flow_alive_when_no_steps Changes to this property will trigger replacement. bool
Switch on/off run cluster with no steps or when all steps are complete (default is on)
kerberos_attributes Changes to this property will trigger replacement. ClusterKerberosAttributesArgs
Kerberos configuration for the cluster. See below.
list_steps_states Sequence[str]
List of step states used to filter returned steps
log_encryption_kms_key_id Changes to this property will trigger replacement. str
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
log_uri Changes to this property will trigger replacement. str
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
master_instance_fleet Changes to this property will trigger replacement. ClusterMasterInstanceFleetArgs
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
master_instance_group Changes to this property will trigger replacement. ClusterMasterInstanceGroupArgs
Configuration block to use an Instance Group for the master node type.
name Changes to this property will trigger replacement. str
Name of the job flow.
placement_group_configs Changes to this property will trigger replacement. Sequence[ClusterPlacementGroupConfigArgs]
The specified placement group configuration for an Amazon EMR cluster.
scale_down_behavior Changes to this property will trigger replacement. str
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
security_configuration Changes to this property will trigger replacement. str
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
step_concurrency_level int
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
steps Changes to this property will trigger replacement. Sequence[ClusterStepArgs]
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
tags Mapping[str, str]
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
termination_protection bool
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
unhealthy_node_replacement bool
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
visible_to_all_users bool
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
releaseLabel
This property is required.
Changes to this property will trigger replacement.
String
Release label for the Amazon EMR release.
serviceRole
This property is required.
Changes to this property will trigger replacement.
String

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

additionalInfo Changes to this property will trigger replacement. String
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
applications Changes to this property will trigger replacement. List<String>
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
autoTerminationPolicy Property Map
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
autoscalingRole Changes to this property will trigger replacement. String
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
bootstrapActions Changes to this property will trigger replacement. List<Property Map>
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
configurations Changes to this property will trigger replacement. String
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
configurationsJson Changes to this property will trigger replacement. String

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
coreInstanceFleet Changes to this property will trigger replacement. Property Map
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
coreInstanceGroup Changes to this property will trigger replacement. Property Map
Configuration block to use an Instance Group for the core node type.
customAmiId Changes to this property will trigger replacement. String
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
ebsRootVolumeSize Changes to this property will trigger replacement. Number
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
ec2Attributes Changes to this property will trigger replacement. Property Map
Attributes for the EC2 instances running the job flow. See below.
keepJobFlowAliveWhenNoSteps Changes to this property will trigger replacement. Boolean
Switch on/off run cluster with no steps or when all steps are complete (default is on)
kerberosAttributes Changes to this property will trigger replacement. Property Map
Kerberos configuration for the cluster. See below.
listStepsStates List<String>
List of step states used to filter returned steps
logEncryptionKmsKeyId Changes to this property will trigger replacement. String
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
logUri Changes to this property will trigger replacement. String
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
masterInstanceFleet Changes to this property will trigger replacement. Property Map
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
masterInstanceGroup Changes to this property will trigger replacement. Property Map
Configuration block to use an Instance Group for the master node type.
name Changes to this property will trigger replacement. String
Name of the job flow.
placementGroupConfigs Changes to this property will trigger replacement. List<Property Map>
The specified placement group configuration for an Amazon EMR cluster.
scaleDownBehavior Changes to this property will trigger replacement. String
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
securityConfiguration Changes to this property will trigger replacement. String
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
stepConcurrencyLevel Number
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
steps Changes to this property will trigger replacement. List<Property Map>
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
tags Map<String>
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
terminationProtection Boolean
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
unhealthyNodeReplacement Boolean
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
visibleToAllUsers Boolean
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.

Outputs

All input properties are implicitly available as output properties. Additionally, the Cluster resource produces the following output properties:

Arn string
ARN of the cluster.
Id string
The provider-assigned unique ID for this managed resource.
MasterPublicDns string
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
State string
TagsAll Dictionary<string, string>
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

Arn string
ARN of the cluster.
ClusterState string
Id string
The provider-assigned unique ID for this managed resource.
MasterPublicDns string
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
TagsAll map[string]string
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

arn String
ARN of the cluster.
clusterState String
id String
The provider-assigned unique ID for this managed resource.
masterPublicDns String
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
tagsAll Map<String,String>
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

arn string
ARN of the cluster.
clusterState string
id string
The provider-assigned unique ID for this managed resource.
masterPublicDns string
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
tagsAll {[key: string]: string}
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

arn str
ARN of the cluster.
cluster_state str
id str
The provider-assigned unique ID for this managed resource.
master_public_dns str
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
tags_all Mapping[str, str]
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

arn String
ARN of the cluster.
clusterState String
id String
The provider-assigned unique ID for this managed resource.
masterPublicDns String
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
tagsAll Map<String>
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

Look up Existing Cluster Resource

Get an existing Cluster resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: ClusterState, opts?: CustomResourceOptions): Cluster
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        additional_info: Optional[str] = None,
        applications: Optional[Sequence[str]] = None,
        arn: Optional[str] = None,
        auto_termination_policy: Optional[ClusterAutoTerminationPolicyArgs] = None,
        autoscaling_role: Optional[str] = None,
        bootstrap_actions: Optional[Sequence[ClusterBootstrapActionArgs]] = None,
        cluster_state: Optional[str] = None,
        configurations: Optional[str] = None,
        configurations_json: Optional[str] = None,
        core_instance_fleet: Optional[ClusterCoreInstanceFleetArgs] = None,
        core_instance_group: Optional[ClusterCoreInstanceGroupArgs] = None,
        custom_ami_id: Optional[str] = None,
        ebs_root_volume_size: Optional[int] = None,
        ec2_attributes: Optional[ClusterEc2AttributesArgs] = None,
        keep_job_flow_alive_when_no_steps: Optional[bool] = None,
        kerberos_attributes: Optional[ClusterKerberosAttributesArgs] = None,
        list_steps_states: Optional[Sequence[str]] = None,
        log_encryption_kms_key_id: Optional[str] = None,
        log_uri: Optional[str] = None,
        master_instance_fleet: Optional[ClusterMasterInstanceFleetArgs] = None,
        master_instance_group: Optional[ClusterMasterInstanceGroupArgs] = None,
        master_public_dns: Optional[str] = None,
        name: Optional[str] = None,
        placement_group_configs: Optional[Sequence[ClusterPlacementGroupConfigArgs]] = None,
        release_label: Optional[str] = None,
        scale_down_behavior: Optional[str] = None,
        security_configuration: Optional[str] = None,
        service_role: Optional[str] = None,
        step_concurrency_level: Optional[int] = None,
        steps: Optional[Sequence[ClusterStepArgs]] = None,
        tags: Optional[Mapping[str, str]] = None,
        tags_all: Optional[Mapping[str, str]] = None,
        termination_protection: Optional[bool] = None,
        unhealthy_node_replacement: Optional[bool] = None,
        visible_to_all_users: Optional[bool] = None) -> Cluster
func GetCluster(ctx *Context, name string, id IDInput, state *ClusterState, opts ...ResourceOption) (*Cluster, error)
public static Cluster Get(string name, Input<string> id, ClusterState? state, CustomResourceOptions? opts = null)
public static Cluster get(String name, Output<String> id, ClusterState state, CustomResourceOptions options)
resources:  _:    type: aws:emr:Cluster    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
AdditionalInfo Changes to this property will trigger replacement. string
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
Applications Changes to this property will trigger replacement. List<string>
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
Arn string
ARN of the cluster.
AutoTerminationPolicy ClusterAutoTerminationPolicy
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
AutoscalingRole Changes to this property will trigger replacement. string
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
BootstrapActions Changes to this property will trigger replacement. List<ClusterBootstrapAction>
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
Configurations Changes to this property will trigger replacement. string
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
ConfigurationsJson Changes to this property will trigger replacement. string

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
CoreInstanceFleet Changes to this property will trigger replacement. ClusterCoreInstanceFleet
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
CoreInstanceGroup Changes to this property will trigger replacement. ClusterCoreInstanceGroup
Configuration block to use an Instance Group for the core node type.
CustomAmiId Changes to this property will trigger replacement. string
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
EbsRootVolumeSize Changes to this property will trigger replacement. int
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
Ec2Attributes Changes to this property will trigger replacement. ClusterEc2Attributes
Attributes for the EC2 instances running the job flow. See below.
KeepJobFlowAliveWhenNoSteps Changes to this property will trigger replacement. bool
Switch on/off run cluster with no steps or when all steps are complete (default is on)
KerberosAttributes Changes to this property will trigger replacement. ClusterKerberosAttributes
Kerberos configuration for the cluster. See below.
ListStepsStates List<string>
List of step states used to filter returned steps
LogEncryptionKmsKeyId Changes to this property will trigger replacement. string
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
LogUri Changes to this property will trigger replacement. string
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
MasterInstanceFleet Changes to this property will trigger replacement. ClusterMasterInstanceFleet
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
MasterInstanceGroup Changes to this property will trigger replacement. ClusterMasterInstanceGroup
Configuration block to use an Instance Group for the master node type.
MasterPublicDns string
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
Name Changes to this property will trigger replacement. string
Name of the job flow.
PlacementGroupConfigs Changes to this property will trigger replacement. List<ClusterPlacementGroupConfig>
The specified placement group configuration for an Amazon EMR cluster.
ReleaseLabel Changes to this property will trigger replacement. string
Release label for the Amazon EMR release.
ScaleDownBehavior Changes to this property will trigger replacement. string
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
SecurityConfiguration Changes to this property will trigger replacement. string
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
ServiceRole Changes to this property will trigger replacement. string

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

State string
StepConcurrencyLevel int
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
Steps Changes to this property will trigger replacement. List<ClusterStep>
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
Tags Dictionary<string, string>
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll Dictionary<string, string>
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

TerminationProtection bool
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
UnhealthyNodeReplacement bool
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
VisibleToAllUsers bool
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
AdditionalInfo Changes to this property will trigger replacement. string
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
Applications Changes to this property will trigger replacement. []string
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
Arn string
ARN of the cluster.
AutoTerminationPolicy ClusterAutoTerminationPolicyArgs
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
AutoscalingRole Changes to this property will trigger replacement. string
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
BootstrapActions Changes to this property will trigger replacement. []ClusterBootstrapActionArgs
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
ClusterState string
Configurations Changes to this property will trigger replacement. string
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
ConfigurationsJson Changes to this property will trigger replacement. string

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
CoreInstanceFleet Changes to this property will trigger replacement. ClusterCoreInstanceFleetArgs
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
CoreInstanceGroup Changes to this property will trigger replacement. ClusterCoreInstanceGroupArgs
Configuration block to use an Instance Group for the core node type.
CustomAmiId Changes to this property will trigger replacement. string
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
EbsRootVolumeSize Changes to this property will trigger replacement. int
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
Ec2Attributes Changes to this property will trigger replacement. ClusterEc2AttributesArgs
Attributes for the EC2 instances running the job flow. See below.
KeepJobFlowAliveWhenNoSteps Changes to this property will trigger replacement. bool
Switch on/off run cluster with no steps or when all steps are complete (default is on)
KerberosAttributes Changes to this property will trigger replacement. ClusterKerberosAttributesArgs
Kerberos configuration for the cluster. See below.
ListStepsStates []string
List of step states used to filter returned steps
LogEncryptionKmsKeyId Changes to this property will trigger replacement. string
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
LogUri Changes to this property will trigger replacement. string
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
MasterInstanceFleet Changes to this property will trigger replacement. ClusterMasterInstanceFleetArgs
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
MasterInstanceGroup Changes to this property will trigger replacement. ClusterMasterInstanceGroupArgs
Configuration block to use an Instance Group for the master node type.
MasterPublicDns string
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
Name Changes to this property will trigger replacement. string
Name of the job flow.
PlacementGroupConfigs Changes to this property will trigger replacement. []ClusterPlacementGroupConfigArgs
The specified placement group configuration for an Amazon EMR cluster.
ReleaseLabel Changes to this property will trigger replacement. string
Release label for the Amazon EMR release.
ScaleDownBehavior Changes to this property will trigger replacement. string
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
SecurityConfiguration Changes to this property will trigger replacement. string
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
ServiceRole Changes to this property will trigger replacement. string

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

StepConcurrencyLevel int
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
Steps Changes to this property will trigger replacement. []ClusterStepArgs
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
Tags map[string]string
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll map[string]string
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

TerminationProtection bool
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
UnhealthyNodeReplacement bool
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
VisibleToAllUsers bool
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
additionalInfo Changes to this property will trigger replacement. String
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
applications Changes to this property will trigger replacement. List<String>
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
arn String
ARN of the cluster.
autoTerminationPolicy ClusterAutoTerminationPolicy
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
autoscalingRole Changes to this property will trigger replacement. String
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
bootstrapActions Changes to this property will trigger replacement. List<ClusterBootstrapAction>
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
clusterState String
configurations Changes to this property will trigger replacement. String
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
configurationsJson Changes to this property will trigger replacement. String

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
coreInstanceFleet Changes to this property will trigger replacement. ClusterCoreInstanceFleet
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
coreInstanceGroup Changes to this property will trigger replacement. ClusterCoreInstanceGroup
Configuration block to use an Instance Group for the core node type.
customAmiId Changes to this property will trigger replacement. String
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
ebsRootVolumeSize Changes to this property will trigger replacement. Integer
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
ec2Attributes Changes to this property will trigger replacement. ClusterEc2Attributes
Attributes for the EC2 instances running the job flow. See below.
keepJobFlowAliveWhenNoSteps Changes to this property will trigger replacement. Boolean
Switch on/off run cluster with no steps or when all steps are complete (default is on)
kerberosAttributes Changes to this property will trigger replacement. ClusterKerberosAttributes
Kerberos configuration for the cluster. See below.
listStepsStates List<String>
List of step states used to filter returned steps
logEncryptionKmsKeyId Changes to this property will trigger replacement. String
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
logUri Changes to this property will trigger replacement. String
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
masterInstanceFleet Changes to this property will trigger replacement. ClusterMasterInstanceFleet
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
masterInstanceGroup Changes to this property will trigger replacement. ClusterMasterInstanceGroup
Configuration block to use an Instance Group for the master node type.
masterPublicDns String
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
name Changes to this property will trigger replacement. String
Name of the job flow.
placementGroupConfigs Changes to this property will trigger replacement. List<ClusterPlacementGroupConfig>
The specified placement group configuration for an Amazon EMR cluster.
releaseLabel Changes to this property will trigger replacement. String
Release label for the Amazon EMR release.
scaleDownBehavior Changes to this property will trigger replacement. String
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
securityConfiguration Changes to this property will trigger replacement. String
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
serviceRole Changes to this property will trigger replacement. String

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

stepConcurrencyLevel Integer
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
steps Changes to this property will trigger replacement. List<ClusterStep>
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
tags Map<String,String>
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tagsAll Map<String,String>
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

terminationProtection Boolean
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
unhealthyNodeReplacement Boolean
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
visibleToAllUsers Boolean
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
additionalInfo Changes to this property will trigger replacement. string
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
applications Changes to this property will trigger replacement. string[]
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
arn string
ARN of the cluster.
autoTerminationPolicy ClusterAutoTerminationPolicy
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
autoscalingRole Changes to this property will trigger replacement. string
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
bootstrapActions Changes to this property will trigger replacement. ClusterBootstrapAction[]
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
clusterState string
configurations Changes to this property will trigger replacement. string
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
configurationsJson Changes to this property will trigger replacement. string

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
coreInstanceFleet Changes to this property will trigger replacement. ClusterCoreInstanceFleet
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
coreInstanceGroup Changes to this property will trigger replacement. ClusterCoreInstanceGroup
Configuration block to use an Instance Group for the core node type.
customAmiId Changes to this property will trigger replacement. string
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
ebsRootVolumeSize Changes to this property will trigger replacement. number
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
ec2Attributes Changes to this property will trigger replacement. ClusterEc2Attributes
Attributes for the EC2 instances running the job flow. See below.
keepJobFlowAliveWhenNoSteps Changes to this property will trigger replacement. boolean
Switch on/off run cluster with no steps or when all steps are complete (default is on)
kerberosAttributes Changes to this property will trigger replacement. ClusterKerberosAttributes
Kerberos configuration for the cluster. See below.
listStepsStates string[]
List of step states used to filter returned steps
logEncryptionKmsKeyId Changes to this property will trigger replacement. string
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
logUri Changes to this property will trigger replacement. string
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
masterInstanceFleet Changes to this property will trigger replacement. ClusterMasterInstanceFleet
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
masterInstanceGroup Changes to this property will trigger replacement. ClusterMasterInstanceGroup
Configuration block to use an Instance Group for the master node type.
masterPublicDns string
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
name Changes to this property will trigger replacement. string
Name of the job flow.
placementGroupConfigs Changes to this property will trigger replacement. ClusterPlacementGroupConfig[]
The specified placement group configuration for an Amazon EMR cluster.
releaseLabel Changes to this property will trigger replacement. string
Release label for the Amazon EMR release.
scaleDownBehavior Changes to this property will trigger replacement. string
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
securityConfiguration Changes to this property will trigger replacement. string
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
serviceRole Changes to this property will trigger replacement. string

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

stepConcurrencyLevel number
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
steps Changes to this property will trigger replacement. ClusterStep[]
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
tags {[key: string]: string}
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tagsAll {[key: string]: string}
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

terminationProtection boolean
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
unhealthyNodeReplacement boolean
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
visibleToAllUsers boolean
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
additional_info Changes to this property will trigger replacement. str
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
applications Changes to this property will trigger replacement. Sequence[str]
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
arn str
ARN of the cluster.
auto_termination_policy ClusterAutoTerminationPolicyArgs
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
autoscaling_role Changes to this property will trigger replacement. str
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
bootstrap_actions Changes to this property will trigger replacement. Sequence[ClusterBootstrapActionArgs]
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
cluster_state str
configurations Changes to this property will trigger replacement. str
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
configurations_json Changes to this property will trigger replacement. str

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
core_instance_fleet Changes to this property will trigger replacement. ClusterCoreInstanceFleetArgs
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
core_instance_group Changes to this property will trigger replacement. ClusterCoreInstanceGroupArgs
Configuration block to use an Instance Group for the core node type.
custom_ami_id Changes to this property will trigger replacement. str
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
ebs_root_volume_size Changes to this property will trigger replacement. int
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
ec2_attributes Changes to this property will trigger replacement. ClusterEc2AttributesArgs
Attributes for the EC2 instances running the job flow. See below.
keep_job_flow_alive_when_no_steps Changes to this property will trigger replacement. bool
Switch on/off run cluster with no steps or when all steps are complete (default is on)
kerberos_attributes Changes to this property will trigger replacement. ClusterKerberosAttributesArgs
Kerberos configuration for the cluster. See below.
list_steps_states Sequence[str]
List of step states used to filter returned steps
log_encryption_kms_key_id Changes to this property will trigger replacement. str
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
log_uri Changes to this property will trigger replacement. str
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
master_instance_fleet Changes to this property will trigger replacement. ClusterMasterInstanceFleetArgs
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
master_instance_group Changes to this property will trigger replacement. ClusterMasterInstanceGroupArgs
Configuration block to use an Instance Group for the master node type.
master_public_dns str
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
name Changes to this property will trigger replacement. str
Name of the job flow.
placement_group_configs Changes to this property will trigger replacement. Sequence[ClusterPlacementGroupConfigArgs]
The specified placement group configuration for an Amazon EMR cluster.
release_label Changes to this property will trigger replacement. str
Release label for the Amazon EMR release.
scale_down_behavior Changes to this property will trigger replacement. str
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
security_configuration Changes to this property will trigger replacement. str
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
service_role Changes to this property will trigger replacement. str

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

step_concurrency_level int
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
steps Changes to this property will trigger replacement. Sequence[ClusterStepArgs]
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
tags Mapping[str, str]
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tags_all Mapping[str, str]
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

termination_protection bool
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
unhealthy_node_replacement bool
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
visible_to_all_users bool
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
additionalInfo Changes to this property will trigger replacement. String
JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore the provider cannot detect drift from the actual EMR cluster if its value is changed outside the provider.
applications Changes to this property will trigger replacement. List<String>
A case-insensitive list of applications for Amazon EMR to install and configure when launching the cluster. For a list of applications available for each Amazon EMR release version, see the Amazon EMR Release Guide.
arn String
ARN of the cluster.
autoTerminationPolicy Property Map
An auto-termination policy for an Amazon EMR cluster. An auto-termination policy defines the amount of idle time in seconds after which a cluster automatically terminates. See Auto Termination Policy Below.
autoscalingRole Changes to this property will trigger replacement. String
IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
bootstrapActions Changes to this property will trigger replacement. List<Property Map>
Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
clusterState String
configurations Changes to this property will trigger replacement. String
List of configurations supplied for the EMR cluster you are creating. Supply a configuration object for applications to override their default configuration. See AWS Documentation for more information.
configurationsJson Changes to this property will trigger replacement. String

JSON string for supplying list of configurations for the EMR cluster.

NOTE on configurations_json: If the Configurations value is empty then you should skip the Configurations field instead of providing an empty list as a value, "Configurations": [].

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const cluster = new aws.emr.Cluster("cluster", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

import pulumi
import pulumi_aws as aws

cluster = aws.emr.Cluster("cluster", configurations_json="""[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
""")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var cluster = new Aws.Emr.Cluster("cluster", new()
    {
        ConfigurationsJson = @"[
{
""Classification"": ""hadoop-env"",
""Configurations"": [
{
""Classification"": ""export"",
""Properties"": {
""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
}
}
],
""Properties"": {}
}
]
",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ConfigurationsJson: pulumi.String(`[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
`),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var cluster = new Cluster("cluster", ClusterArgs.builder()
            .configurationsJson("""
[
{
"Classification": "hadoop-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
}
}
],
"Properties": {}
}
]
            """)
            .build());

    }
}
resources:
  cluster:
    type: aws:emr:Cluster
    properties:
      configurationsJson: |
        [
        {
        "Classification": "hadoop-env",
        "Configurations": [
        {
        "Classification": "export",
        "Properties": {
        "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
        }
        }
        ],
        "Properties": {}
        }
        ]
coreInstanceFleet Changes to this property will trigger replacement. Property Map
Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_group configuration blocks are set. Detailed below.
coreInstanceGroup Changes to this property will trigger replacement. Property Map
Configuration block to use an Instance Group for the core node type.
customAmiId Changes to this property will trigger replacement. String
Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
ebsRootVolumeSize Changes to this property will trigger replacement. Number
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
ec2Attributes Changes to this property will trigger replacement. Property Map
Attributes for the EC2 instances running the job flow. See below.
keepJobFlowAliveWhenNoSteps Changes to this property will trigger replacement. Boolean
Switch on/off run cluster with no steps or when all steps are complete (default is on)
kerberosAttributes Changes to this property will trigger replacement. Property Map
Kerberos configuration for the cluster. See below.
listStepsStates List<String>
List of step states used to filter returned steps
logEncryptionKmsKeyId Changes to this property will trigger replacement. String
AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attribute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0.
logUri Changes to this property will trigger replacement. String
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
masterInstanceFleet Changes to this property will trigger replacement. Property Map
Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_group configuration blocks are set. Detailed below.
masterInstanceGroup Changes to this property will trigger replacement. Property Map
Configuration block to use an Instance Group for the master node type.
masterPublicDns String
The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
name Changes to this property will trigger replacement. String
Name of the job flow.
placementGroupConfigs Changes to this property will trigger replacement. List<Property Map>
The specified placement group configuration for an Amazon EMR cluster.
releaseLabel Changes to this property will trigger replacement. String
Release label for the Amazon EMR release.
scaleDownBehavior Changes to this property will trigger replacement. String
Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.
securityConfiguration Changes to this property will trigger replacement. String
Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label 4.8.0 or greater.
serviceRole Changes to this property will trigger replacement. String

IAM role that will be assumed by the Amazon EMR service to access AWS resources.

The following arguments are optional:

stepConcurrencyLevel Number
Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label 5.28.0 or greater (default is 1).
steps Changes to this property will trigger replacement. List<Property Map>
List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChanges if other steps are being managed outside of this provider.
tags Map<String>
list of tags to apply to the EMR Cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tagsAll Map<String>
Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Deprecated: Please use tags instead.

terminationProtection Boolean
Switch on/off termination protection (default is false, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to false.
unhealthyNodeReplacement Boolean
Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
visibleToAllUsers Boolean
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.

Supporting Types

ClusterAutoTerminationPolicy
, ClusterAutoTerminationPolicyArgs

IdleTimeout int
Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).
IdleTimeout int
Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).
idleTimeout Integer
Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).
idleTimeout number
Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).
idle_timeout int
Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).
idleTimeout Number
Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of 60 seconds and a maximum of 604800 seconds (seven days).

ClusterBootstrapAction
, ClusterBootstrapActionArgs

Name This property is required. string
Name of the bootstrap action.
Path This property is required. string
Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system.
Args Changes to this property will trigger replacement. List<string>
List of command line arguments to pass to the bootstrap action script.
Name This property is required. string
Name of the bootstrap action.
Path This property is required. string
Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system.
Args Changes to this property will trigger replacement. []string
List of command line arguments to pass to the bootstrap action script.
name This property is required. String
Name of the bootstrap action.
path This property is required. String
Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system.
args Changes to this property will trigger replacement. List<String>
List of command line arguments to pass to the bootstrap action script.
name This property is required. string
Name of the bootstrap action.
path This property is required. string
Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system.
args Changes to this property will trigger replacement. string[]
List of command line arguments to pass to the bootstrap action script.
name This property is required. str
Name of the bootstrap action.
path This property is required. str
Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system.
args Changes to this property will trigger replacement. Sequence[str]
List of command line arguments to pass to the bootstrap action script.
name This property is required. String
Name of the bootstrap action.
path This property is required. String
Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system.
args Changes to this property will trigger replacement. List<String>
List of command line arguments to pass to the bootstrap action script.

ClusterCoreInstanceFleet
, ClusterCoreInstanceFleetArgs

Id string
ID of the cluster.
InstanceTypeConfigs Changes to this property will trigger replacement. List<ClusterCoreInstanceFleetInstanceTypeConfig>
Configuration block for instance fleet.
LaunchSpecifications Changes to this property will trigger replacement. ClusterCoreInstanceFleetLaunchSpecifications
Configuration block for launch specification.
Name Changes to this property will trigger replacement. string
Friendly name given to the instance fleet.
ProvisionedOnDemandCapacity int
ProvisionedSpotCapacity int
TargetOnDemandCapacity Changes to this property will trigger replacement. int
The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
TargetSpotCapacity Changes to this property will trigger replacement. int
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
Id string
ID of the cluster.
InstanceTypeConfigs Changes to this property will trigger replacement. []ClusterCoreInstanceFleetInstanceTypeConfig
Configuration block for instance fleet.
LaunchSpecifications Changes to this property will trigger replacement. ClusterCoreInstanceFleetLaunchSpecifications
Configuration block for launch specification.
Name Changes to this property will trigger replacement. string
Friendly name given to the instance fleet.
ProvisionedOnDemandCapacity int
ProvisionedSpotCapacity int
TargetOnDemandCapacity Changes to this property will trigger replacement. int
The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
TargetSpotCapacity Changes to this property will trigger replacement. int
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
id String
ID of the cluster.
instanceTypeConfigs Changes to this property will trigger replacement. List<ClusterCoreInstanceFleetInstanceTypeConfig>
Configuration block for instance fleet.
launchSpecifications Changes to this property will trigger replacement. ClusterCoreInstanceFleetLaunchSpecifications
Configuration block for launch specification.
name Changes to this property will trigger replacement. String
Friendly name given to the instance fleet.
provisionedOnDemandCapacity Integer
provisionedSpotCapacity Integer
targetOnDemandCapacity Changes to this property will trigger replacement. Integer
The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
targetSpotCapacity Changes to this property will trigger replacement. Integer
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
id string
ID of the cluster.
instanceTypeConfigs Changes to this property will trigger replacement. ClusterCoreInstanceFleetInstanceTypeConfig[]
Configuration block for instance fleet.
launchSpecifications Changes to this property will trigger replacement. ClusterCoreInstanceFleetLaunchSpecifications
Configuration block for launch specification.
name Changes to this property will trigger replacement. string
Friendly name given to the instance fleet.
provisionedOnDemandCapacity number
provisionedSpotCapacity number
targetOnDemandCapacity Changes to this property will trigger replacement. number
The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
targetSpotCapacity Changes to this property will trigger replacement. number
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
id str
ID of the cluster.
instance_type_configs Changes to this property will trigger replacement. Sequence[ClusterCoreInstanceFleetInstanceTypeConfig]
Configuration block for instance fleet.
launch_specifications Changes to this property will trigger replacement. ClusterCoreInstanceFleetLaunchSpecifications
Configuration block for launch specification.
name Changes to this property will trigger replacement. str
Friendly name given to the instance fleet.
provisioned_on_demand_capacity int
provisioned_spot_capacity int
target_on_demand_capacity Changes to this property will trigger replacement. int
The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
target_spot_capacity Changes to this property will trigger replacement. int
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
id String
ID of the cluster.
instanceTypeConfigs Changes to this property will trigger replacement. List<Property Map>
Configuration block for instance fleet.
launchSpecifications Changes to this property will trigger replacement. Property Map
Configuration block for launch specification.
name Changes to this property will trigger replacement. String
Friendly name given to the instance fleet.
provisionedOnDemandCapacity Number
provisionedSpotCapacity Number
targetOnDemandCapacity Changes to this property will trigger replacement. Number
The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
targetSpotCapacity Changes to this property will trigger replacement. Number
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.

ClusterCoreInstanceFleetInstanceTypeConfig
, ClusterCoreInstanceFleetInstanceTypeConfigArgs

InstanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type, such as m4.xlarge.
BidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
BidPriceAsPercentageOfOnDemandPrice Changes to this property will trigger replacement. double
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
Configurations Changes to this property will trigger replacement. List<ClusterCoreInstanceFleetInstanceTypeConfigConfiguration>
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
EbsConfigs Changes to this property will trigger replacement. List<ClusterCoreInstanceFleetInstanceTypeConfigEbsConfig>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
WeightedCapacity Changes to this property will trigger replacement. int
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
InstanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type, such as m4.xlarge.
BidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
BidPriceAsPercentageOfOnDemandPrice Changes to this property will trigger replacement. float64
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
Configurations Changes to this property will trigger replacement. []ClusterCoreInstanceFleetInstanceTypeConfigConfiguration
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
EbsConfigs Changes to this property will trigger replacement. []ClusterCoreInstanceFleetInstanceTypeConfigEbsConfig
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
WeightedCapacity Changes to this property will trigger replacement. int
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
instanceType
This property is required.
Changes to this property will trigger replacement.
String
EC2 instance type, such as m4.xlarge.
bidPrice Changes to this property will trigger replacement. String
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
bidPriceAsPercentageOfOnDemandPrice Changes to this property will trigger replacement. Double
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
configurations Changes to this property will trigger replacement. List<ClusterCoreInstanceFleetInstanceTypeConfigConfiguration>
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
ebsConfigs Changes to this property will trigger replacement. List<ClusterCoreInstanceFleetInstanceTypeConfigEbsConfig>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
weightedCapacity Changes to this property will trigger replacement. Integer
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
instanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type, such as m4.xlarge.
bidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
bidPriceAsPercentageOfOnDemandPrice Changes to this property will trigger replacement. number
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
configurations Changes to this property will trigger replacement. ClusterCoreInstanceFleetInstanceTypeConfigConfiguration[]
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
ebsConfigs Changes to this property will trigger replacement. ClusterCoreInstanceFleetInstanceTypeConfigEbsConfig[]
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
weightedCapacity Changes to this property will trigger replacement. number
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
instance_type
This property is required.
Changes to this property will trigger replacement.
str
EC2 instance type, such as m4.xlarge.
bid_price Changes to this property will trigger replacement. str
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
bid_price_as_percentage_of_on_demand_price Changes to this property will trigger replacement. float
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
configurations Changes to this property will trigger replacement. Sequence[ClusterCoreInstanceFleetInstanceTypeConfigConfiguration]
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
ebs_configs Changes to this property will trigger replacement. Sequence[ClusterCoreInstanceFleetInstanceTypeConfigEbsConfig]
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
weighted_capacity Changes to this property will trigger replacement. int
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
instanceType
This property is required.
Changes to this property will trigger replacement.
String
EC2 instance type, such as m4.xlarge.
bidPrice Changes to this property will trigger replacement. String
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
bidPriceAsPercentageOfOnDemandPrice Changes to this property will trigger replacement. Number
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
configurations Changes to this property will trigger replacement. List<Property Map>
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
ebsConfigs Changes to this property will trigger replacement. List<Property Map>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
weightedCapacity Changes to this property will trigger replacement. Number
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.

ClusterCoreInstanceFleetInstanceTypeConfigConfiguration
, ClusterCoreInstanceFleetInstanceTypeConfigConfigurationArgs

Classification Changes to this property will trigger replacement. string
Classification within a configuration.
Properties Changes to this property will trigger replacement. Dictionary<string, string>
Map of properties specified within a configuration classification.
Classification Changes to this property will trigger replacement. string
Classification within a configuration.
Properties Changes to this property will trigger replacement. map[string]string
Map of properties specified within a configuration classification.
classification Changes to this property will trigger replacement. String
Classification within a configuration.
properties Changes to this property will trigger replacement. Map<String,String>
Map of properties specified within a configuration classification.
classification Changes to this property will trigger replacement. string
Classification within a configuration.
properties Changes to this property will trigger replacement. {[key: string]: string}
Map of properties specified within a configuration classification.
classification Changes to this property will trigger replacement. str
Classification within a configuration.
properties Changes to this property will trigger replacement. Mapping[str, str]
Map of properties specified within a configuration classification.
classification Changes to this property will trigger replacement. String
Classification within a configuration.
properties Changes to this property will trigger replacement. Map<String>
Map of properties specified within a configuration classification.

ClusterCoreInstanceFleetInstanceTypeConfigEbsConfig
, ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs

Size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
Type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
Iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
VolumesPerInstance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
Size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
Type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
Iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
VolumesPerInstance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
Integer
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
String
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. Integer
Number of I/O operations per second (IOPS) that the volume supports.
volumesPerInstance Changes to this property will trigger replacement. Integer
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
number
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. number
Number of I/O operations per second (IOPS) that the volume supports.
volumesPerInstance Changes to this property will trigger replacement. number
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
str
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
volumes_per_instance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
Number
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
String
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. Number
Number of I/O operations per second (IOPS) that the volume supports.
volumesPerInstance Changes to this property will trigger replacement. Number
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).

ClusterCoreInstanceFleetLaunchSpecifications
, ClusterCoreInstanceFleetLaunchSpecificationsArgs

OnDemandSpecifications Changes to this property will trigger replacement. List<ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecification>
Configuration block for on demand instances launch specifications.
SpotSpecifications Changes to this property will trigger replacement. List<ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecification>
Configuration block for spot instances launch specifications.
OnDemandSpecifications Changes to this property will trigger replacement. []ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecification
Configuration block for on demand instances launch specifications.
SpotSpecifications Changes to this property will trigger replacement. []ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecification
Configuration block for spot instances launch specifications.
onDemandSpecifications Changes to this property will trigger replacement. List<ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecification>
Configuration block for on demand instances launch specifications.
spotSpecifications Changes to this property will trigger replacement. List<ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecification>
Configuration block for spot instances launch specifications.
onDemandSpecifications Changes to this property will trigger replacement. ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecification[]
Configuration block for on demand instances launch specifications.
spotSpecifications Changes to this property will trigger replacement. ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecification[]
Configuration block for spot instances launch specifications.
on_demand_specifications Changes to this property will trigger replacement. Sequence[ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecification]
Configuration block for on demand instances launch specifications.
spot_specifications Changes to this property will trigger replacement. Sequence[ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecification]
Configuration block for spot instances launch specifications.
onDemandSpecifications Changes to this property will trigger replacement. List<Property Map>
Configuration block for on demand instances launch specifications.
spotSpecifications Changes to this property will trigger replacement. List<Property Map>
Configuration block for spot instances launch specifications.

ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecification
, ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs

AllocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.
AllocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
String
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.
allocation_strategy
This property is required.
Changes to this property will trigger replacement.
str
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
String
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.

ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecification
, ClusterCoreInstanceFleetLaunchSpecificationsSpotSpecificationArgs

AllocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
TimeoutAction
This property is required.
Changes to this property will trigger replacement.
string
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
TimeoutDurationMinutes
This property is required.
Changes to this property will trigger replacement.
int
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
BlockDurationMinutes Changes to this property will trigger replacement. int
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.
AllocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
TimeoutAction
This property is required.
Changes to this property will trigger replacement.
string
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
TimeoutDurationMinutes
This property is required.
Changes to this property will trigger replacement.
int
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
BlockDurationMinutes Changes to this property will trigger replacement. int
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
String
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
timeoutAction
This property is required.
Changes to this property will trigger replacement.
String
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
timeoutDurationMinutes
This property is required.
Changes to this property will trigger replacement.
Integer
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
blockDurationMinutes Changes to this property will trigger replacement. Integer
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
timeoutAction
This property is required.
Changes to this property will trigger replacement.
string
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
timeoutDurationMinutes
This property is required.
Changes to this property will trigger replacement.
number
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
blockDurationMinutes Changes to this property will trigger replacement. number
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.
allocation_strategy
This property is required.
Changes to this property will trigger replacement.
str
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
timeout_action
This property is required.
Changes to this property will trigger replacement.
str
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
timeout_duration_minutes
This property is required.
Changes to this property will trigger replacement.
int
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
block_duration_minutes Changes to this property will trigger replacement. int
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
String
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
timeoutAction
This property is required.
Changes to this property will trigger replacement.
String
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
timeoutDurationMinutes
This property is required.
Changes to this property will trigger replacement.
Number
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
blockDurationMinutes Changes to this property will trigger replacement. Number
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.

ClusterCoreInstanceGroup
, ClusterCoreInstanceGroupArgs

InstanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type for all instances in the instance group.
AutoscalingPolicy string
String containing the EMR Auto Scaling Policy JSON.
BidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
EbsConfigs Changes to this property will trigger replacement. List<ClusterCoreInstanceGroupEbsConfig>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
Id string
Core node type Instance Group ID, if using Instance Group for this node type.
InstanceCount int
Target number of instances for the instance group. Must be at least 1. Defaults to 1.
Name Changes to this property will trigger replacement. string
Friendly name given to the instance group.
InstanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type for all instances in the instance group.
AutoscalingPolicy string
String containing the EMR Auto Scaling Policy JSON.
BidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
EbsConfigs Changes to this property will trigger replacement. []ClusterCoreInstanceGroupEbsConfig
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
Id string
Core node type Instance Group ID, if using Instance Group for this node type.
InstanceCount int
Target number of instances for the instance group. Must be at least 1. Defaults to 1.
Name Changes to this property will trigger replacement. string
Friendly name given to the instance group.
instanceType
This property is required.
Changes to this property will trigger replacement.
String
EC2 instance type for all instances in the instance group.
autoscalingPolicy String
String containing the EMR Auto Scaling Policy JSON.
bidPrice Changes to this property will trigger replacement. String
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ebsConfigs Changes to this property will trigger replacement. List<ClusterCoreInstanceGroupEbsConfig>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
id String
Core node type Instance Group ID, if using Instance Group for this node type.
instanceCount Integer
Target number of instances for the instance group. Must be at least 1. Defaults to 1.
name Changes to this property will trigger replacement. String
Friendly name given to the instance group.
instanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type for all instances in the instance group.
autoscalingPolicy string
String containing the EMR Auto Scaling Policy JSON.
bidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ebsConfigs Changes to this property will trigger replacement. ClusterCoreInstanceGroupEbsConfig[]
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
id string
Core node type Instance Group ID, if using Instance Group for this node type.
instanceCount number
Target number of instances for the instance group. Must be at least 1. Defaults to 1.
name Changes to this property will trigger replacement. string
Friendly name given to the instance group.
instance_type
This property is required.
Changes to this property will trigger replacement.
str
EC2 instance type for all instances in the instance group.
autoscaling_policy str
String containing the EMR Auto Scaling Policy JSON.
bid_price Changes to this property will trigger replacement. str
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ebs_configs Changes to this property will trigger replacement. Sequence[ClusterCoreInstanceGroupEbsConfig]
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
id str
Core node type Instance Group ID, if using Instance Group for this node type.
instance_count int
Target number of instances for the instance group. Must be at least 1. Defaults to 1.
name Changes to this property will trigger replacement. str
Friendly name given to the instance group.
instanceType
This property is required.
Changes to this property will trigger replacement.
String
EC2 instance type for all instances in the instance group.
autoscalingPolicy String
String containing the EMR Auto Scaling Policy JSON.
bidPrice Changes to this property will trigger replacement. String
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ebsConfigs Changes to this property will trigger replacement. List<Property Map>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
id String
Core node type Instance Group ID, if using Instance Group for this node type.
instanceCount Number
Target number of instances for the instance group. Must be at least 1. Defaults to 1.
name Changes to this property will trigger replacement. String
Friendly name given to the instance group.

ClusterCoreInstanceGroupEbsConfig
, ClusterCoreInstanceGroupEbsConfigArgs

Size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
Type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
Iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
Throughput Changes to this property will trigger replacement. int
The throughput, in mebibyte per second (MiB/s).
VolumesPerInstance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
Size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
Type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
Iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
Throughput Changes to this property will trigger replacement. int
The throughput, in mebibyte per second (MiB/s).
VolumesPerInstance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
Integer
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
String
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. Integer
Number of I/O operations per second (IOPS) that the volume supports.
throughput Changes to this property will trigger replacement. Integer
The throughput, in mebibyte per second (MiB/s).
volumesPerInstance Changes to this property will trigger replacement. Integer
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
number
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. number
Number of I/O operations per second (IOPS) that the volume supports.
throughput Changes to this property will trigger replacement. number
The throughput, in mebibyte per second (MiB/s).
volumesPerInstance Changes to this property will trigger replacement. number
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
str
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
throughput Changes to this property will trigger replacement. int
The throughput, in mebibyte per second (MiB/s).
volumes_per_instance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
Number
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
String
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. Number
Number of I/O operations per second (IOPS) that the volume supports.
throughput Changes to this property will trigger replacement. Number
The throughput, in mebibyte per second (MiB/s).
volumesPerInstance Changes to this property will trigger replacement. Number
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).

ClusterEc2Attributes
, ClusterEc2AttributesArgs

InstanceProfile
This property is required.
Changes to this property will trigger replacement.
string
Instance Profile for EC2 instances of the cluster assume this role.
AdditionalMasterSecurityGroups Changes to this property will trigger replacement. string
String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
AdditionalSlaveSecurityGroups Changes to this property will trigger replacement. string
String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
EmrManagedMasterSecurityGroup Changes to this property will trigger replacement. string
Identifier of the Amazon EC2 EMR-Managed security group for the master node.
EmrManagedSlaveSecurityGroup Changes to this property will trigger replacement. string
Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
KeyName Changes to this property will trigger replacement. string
Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
ServiceAccessSecurityGroup Changes to this property will trigger replacement. string
Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
SubnetId Changes to this property will trigger replacement. string
VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in an Amazon VPC.
SubnetIds Changes to this property will trigger replacement. List<string>

List of VPC subnet id-s where you want the job flow to launch. Amazon EMR identifies the best Availability Zone to launch instances according to your fleet specifications.

NOTE on EMR-Managed security groups: These security groups will have any missing inbound or outbound access rules added and maintained by AWS, to ensure proper communication between instances in a cluster. The EMR service will maintain these rules for groups provided in emr_managed_master_security_group and emr_managed_slave_security_group; attempts to remove the required rules may succeed, only for the EMR service to re-add them in a matter of minutes. This may cause this provider to fail to destroy an environment that contains an EMR cluster, because the EMR service does not revoke rules added on deletion, leaving a cyclic dependency between the security groups that prevents their deletion. To avoid this, use the revoke_rules_on_delete optional attribute for any Security Group used in emr_managed_master_security_group and emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.

InstanceProfile
This property is required.
Changes to this property will trigger replacement.
string
Instance Profile for EC2 instances of the cluster assume this role.
AdditionalMasterSecurityGroups Changes to this property will trigger replacement. string
String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
AdditionalSlaveSecurityGroups Changes to this property will trigger replacement. string
String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
EmrManagedMasterSecurityGroup Changes to this property will trigger replacement. string
Identifier of the Amazon EC2 EMR-Managed security group for the master node.
EmrManagedSlaveSecurityGroup Changes to this property will trigger replacement. string
Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
KeyName Changes to this property will trigger replacement. string
Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
ServiceAccessSecurityGroup Changes to this property will trigger replacement. string
Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
SubnetId Changes to this property will trigger replacement. string
VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in an Amazon VPC.
SubnetIds Changes to this property will trigger replacement. []string

List of VPC subnet id-s where you want the job flow to launch. Amazon EMR identifies the best Availability Zone to launch instances according to your fleet specifications.

NOTE on EMR-Managed security groups: These security groups will have any missing inbound or outbound access rules added and maintained by AWS, to ensure proper communication between instances in a cluster. The EMR service will maintain these rules for groups provided in emr_managed_master_security_group and emr_managed_slave_security_group; attempts to remove the required rules may succeed, only for the EMR service to re-add them in a matter of minutes. This may cause this provider to fail to destroy an environment that contains an EMR cluster, because the EMR service does not revoke rules added on deletion, leaving a cyclic dependency between the security groups that prevents their deletion. To avoid this, use the revoke_rules_on_delete optional attribute for any Security Group used in emr_managed_master_security_group and emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.

instanceProfile
This property is required.
Changes to this property will trigger replacement.
String
Instance Profile for EC2 instances of the cluster assume this role.
additionalMasterSecurityGroups Changes to this property will trigger replacement. String
String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
additionalSlaveSecurityGroups Changes to this property will trigger replacement. String
String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
emrManagedMasterSecurityGroup Changes to this property will trigger replacement. String
Identifier of the Amazon EC2 EMR-Managed security group for the master node.
emrManagedSlaveSecurityGroup Changes to this property will trigger replacement. String
Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
keyName Changes to this property will trigger replacement. String
Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
serviceAccessSecurityGroup Changes to this property will trigger replacement. String
Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
subnetId Changes to this property will trigger replacement. String
VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in an Amazon VPC.
subnetIds Changes to this property will trigger replacement. List<String>

List of VPC subnet id-s where you want the job flow to launch. Amazon EMR identifies the best Availability Zone to launch instances according to your fleet specifications.

NOTE on EMR-Managed security groups: These security groups will have any missing inbound or outbound access rules added and maintained by AWS, to ensure proper communication between instances in a cluster. The EMR service will maintain these rules for groups provided in emr_managed_master_security_group and emr_managed_slave_security_group; attempts to remove the required rules may succeed, only for the EMR service to re-add them in a matter of minutes. This may cause this provider to fail to destroy an environment that contains an EMR cluster, because the EMR service does not revoke rules added on deletion, leaving a cyclic dependency between the security groups that prevents their deletion. To avoid this, use the revoke_rules_on_delete optional attribute for any Security Group used in emr_managed_master_security_group and emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.

instanceProfile
This property is required.
Changes to this property will trigger replacement.
string
Instance Profile for EC2 instances of the cluster assume this role.
additionalMasterSecurityGroups Changes to this property will trigger replacement. string
String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
additionalSlaveSecurityGroups Changes to this property will trigger replacement. string
String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
emrManagedMasterSecurityGroup Changes to this property will trigger replacement. string
Identifier of the Amazon EC2 EMR-Managed security group for the master node.
emrManagedSlaveSecurityGroup Changes to this property will trigger replacement. string
Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
keyName Changes to this property will trigger replacement. string
Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
serviceAccessSecurityGroup Changes to this property will trigger replacement. string
Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
subnetId Changes to this property will trigger replacement. string
VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in an Amazon VPC.
subnetIds Changes to this property will trigger replacement. string[]

List of VPC subnet id-s where you want the job flow to launch. Amazon EMR identifies the best Availability Zone to launch instances according to your fleet specifications.

NOTE on EMR-Managed security groups: These security groups will have any missing inbound or outbound access rules added and maintained by AWS, to ensure proper communication between instances in a cluster. The EMR service will maintain these rules for groups provided in emr_managed_master_security_group and emr_managed_slave_security_group; attempts to remove the required rules may succeed, only for the EMR service to re-add them in a matter of minutes. This may cause this provider to fail to destroy an environment that contains an EMR cluster, because the EMR service does not revoke rules added on deletion, leaving a cyclic dependency between the security groups that prevents their deletion. To avoid this, use the revoke_rules_on_delete optional attribute for any Security Group used in emr_managed_master_security_group and emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.

instance_profile
This property is required.
Changes to this property will trigger replacement.
str
Instance Profile for EC2 instances of the cluster assume this role.
additional_master_security_groups Changes to this property will trigger replacement. str
String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
additional_slave_security_groups Changes to this property will trigger replacement. str
String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
emr_managed_master_security_group Changes to this property will trigger replacement. str
Identifier of the Amazon EC2 EMR-Managed security group for the master node.
emr_managed_slave_security_group Changes to this property will trigger replacement. str
Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
key_name Changes to this property will trigger replacement. str
Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
service_access_security_group Changes to this property will trigger replacement. str
Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
subnet_id Changes to this property will trigger replacement. str
VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in an Amazon VPC.
subnet_ids Changes to this property will trigger replacement. Sequence[str]

List of VPC subnet id-s where you want the job flow to launch. Amazon EMR identifies the best Availability Zone to launch instances according to your fleet specifications.

NOTE on EMR-Managed security groups: These security groups will have any missing inbound or outbound access rules added and maintained by AWS, to ensure proper communication between instances in a cluster. The EMR service will maintain these rules for groups provided in emr_managed_master_security_group and emr_managed_slave_security_group; attempts to remove the required rules may succeed, only for the EMR service to re-add them in a matter of minutes. This may cause this provider to fail to destroy an environment that contains an EMR cluster, because the EMR service does not revoke rules added on deletion, leaving a cyclic dependency between the security groups that prevents their deletion. To avoid this, use the revoke_rules_on_delete optional attribute for any Security Group used in emr_managed_master_security_group and emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.

instanceProfile
This property is required.
Changes to this property will trigger replacement.
String
Instance Profile for EC2 instances of the cluster assume this role.
additionalMasterSecurityGroups Changes to this property will trigger replacement. String
String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
additionalSlaveSecurityGroups Changes to this property will trigger replacement. String
String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
emrManagedMasterSecurityGroup Changes to this property will trigger replacement. String
Identifier of the Amazon EC2 EMR-Managed security group for the master node.
emrManagedSlaveSecurityGroup Changes to this property will trigger replacement. String
Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
keyName Changes to this property will trigger replacement. String
Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
serviceAccessSecurityGroup Changes to this property will trigger replacement. String
Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
subnetId Changes to this property will trigger replacement. String
VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in an Amazon VPC.
subnetIds Changes to this property will trigger replacement. List<String>

List of VPC subnet id-s where you want the job flow to launch. Amazon EMR identifies the best Availability Zone to launch instances according to your fleet specifications.

NOTE on EMR-Managed security groups: These security groups will have any missing inbound or outbound access rules added and maintained by AWS, to ensure proper communication between instances in a cluster. The EMR service will maintain these rules for groups provided in emr_managed_master_security_group and emr_managed_slave_security_group; attempts to remove the required rules may succeed, only for the EMR service to re-add them in a matter of minutes. This may cause this provider to fail to destroy an environment that contains an EMR cluster, because the EMR service does not revoke rules added on deletion, leaving a cyclic dependency between the security groups that prevents their deletion. To avoid this, use the revoke_rules_on_delete optional attribute for any Security Group used in emr_managed_master_security_group and emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.

ClusterKerberosAttributes
, ClusterKerberosAttributesArgs

KdcAdminPassword
This property is required.
Changes to this property will trigger replacement.
string
Password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. This provider cannot perform drift detection of this configuration.
Realm
This property is required.
Changes to this property will trigger replacement.
string
Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
AdDomainJoinPassword Changes to this property will trigger replacement. string
Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
AdDomainJoinUser Changes to this property will trigger replacement. string
Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration.
CrossRealmTrustPrincipalPassword Changes to this property will trigger replacement. string
Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration.
KdcAdminPassword
This property is required.
Changes to this property will trigger replacement.
string
Password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. This provider cannot perform drift detection of this configuration.
Realm
This property is required.
Changes to this property will trigger replacement.
string
Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
AdDomainJoinPassword Changes to this property will trigger replacement. string
Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
AdDomainJoinUser Changes to this property will trigger replacement. string
Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration.
CrossRealmTrustPrincipalPassword Changes to this property will trigger replacement. string
Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration.
kdcAdminPassword
This property is required.
Changes to this property will trigger replacement.
String
Password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. This provider cannot perform drift detection of this configuration.
realm
This property is required.
Changes to this property will trigger replacement.
String
Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
adDomainJoinPassword Changes to this property will trigger replacement. String
Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
adDomainJoinUser Changes to this property will trigger replacement. String
Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration.
crossRealmTrustPrincipalPassword Changes to this property will trigger replacement. String
Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration.
kdcAdminPassword
This property is required.
Changes to this property will trigger replacement.
string
Password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. This provider cannot perform drift detection of this configuration.
realm
This property is required.
Changes to this property will trigger replacement.
string
Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
adDomainJoinPassword Changes to this property will trigger replacement. string
Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
adDomainJoinUser Changes to this property will trigger replacement. string
Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration.
crossRealmTrustPrincipalPassword Changes to this property will trigger replacement. string
Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration.
kdc_admin_password
This property is required.
Changes to this property will trigger replacement.
str
Password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. This provider cannot perform drift detection of this configuration.
realm
This property is required.
Changes to this property will trigger replacement.
str
Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
ad_domain_join_password Changes to this property will trigger replacement. str
Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
ad_domain_join_user Changes to this property will trigger replacement. str
Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration.
cross_realm_trust_principal_password Changes to this property will trigger replacement. str
Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration.
kdcAdminPassword
This property is required.
Changes to this property will trigger replacement.
String
Password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. This provider cannot perform drift detection of this configuration.
realm
This property is required.
Changes to this property will trigger replacement.
String
Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
adDomainJoinPassword Changes to this property will trigger replacement. String
Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
adDomainJoinUser Changes to this property will trigger replacement. String
Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration.
crossRealmTrustPrincipalPassword Changes to this property will trigger replacement. String
Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration.

ClusterMasterInstanceFleet
, ClusterMasterInstanceFleetArgs

Id string
ID of the cluster.
InstanceTypeConfigs Changes to this property will trigger replacement. List<ClusterMasterInstanceFleetInstanceTypeConfig>
Configuration block for instance fleet.
LaunchSpecifications Changes to this property will trigger replacement. ClusterMasterInstanceFleetLaunchSpecifications
Configuration block for launch specification.
Name Changes to this property will trigger replacement. string
Friendly name given to the instance fleet.
ProvisionedOnDemandCapacity int
ProvisionedSpotCapacity int
TargetOnDemandCapacity Changes to this property will trigger replacement. int
Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
TargetSpotCapacity Changes to this property will trigger replacement. int
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
Id string
ID of the cluster.
InstanceTypeConfigs Changes to this property will trigger replacement. []ClusterMasterInstanceFleetInstanceTypeConfig
Configuration block for instance fleet.
LaunchSpecifications Changes to this property will trigger replacement. ClusterMasterInstanceFleetLaunchSpecifications
Configuration block for launch specification.
Name Changes to this property will trigger replacement. string
Friendly name given to the instance fleet.
ProvisionedOnDemandCapacity int
ProvisionedSpotCapacity int
TargetOnDemandCapacity Changes to this property will trigger replacement. int
Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
TargetSpotCapacity Changes to this property will trigger replacement. int
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
id String
ID of the cluster.
instanceTypeConfigs Changes to this property will trigger replacement. List<ClusterMasterInstanceFleetInstanceTypeConfig>
Configuration block for instance fleet.
launchSpecifications Changes to this property will trigger replacement. ClusterMasterInstanceFleetLaunchSpecifications
Configuration block for launch specification.
name Changes to this property will trigger replacement. String
Friendly name given to the instance fleet.
provisionedOnDemandCapacity Integer
provisionedSpotCapacity Integer
targetOnDemandCapacity Changes to this property will trigger replacement. Integer
Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
targetSpotCapacity Changes to this property will trigger replacement. Integer
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
id string
ID of the cluster.
instanceTypeConfigs Changes to this property will trigger replacement. ClusterMasterInstanceFleetInstanceTypeConfig[]
Configuration block for instance fleet.
launchSpecifications Changes to this property will trigger replacement. ClusterMasterInstanceFleetLaunchSpecifications
Configuration block for launch specification.
name Changes to this property will trigger replacement. string
Friendly name given to the instance fleet.
provisionedOnDemandCapacity number
provisionedSpotCapacity number
targetOnDemandCapacity Changes to this property will trigger replacement. number
Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
targetSpotCapacity Changes to this property will trigger replacement. number
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
id str
ID of the cluster.
instance_type_configs Changes to this property will trigger replacement. Sequence[ClusterMasterInstanceFleetInstanceTypeConfig]
Configuration block for instance fleet.
launch_specifications Changes to this property will trigger replacement. ClusterMasterInstanceFleetLaunchSpecifications
Configuration block for launch specification.
name Changes to this property will trigger replacement. str
Friendly name given to the instance fleet.
provisioned_on_demand_capacity int
provisioned_spot_capacity int
target_on_demand_capacity Changes to this property will trigger replacement. int
Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
target_spot_capacity Changes to this property will trigger replacement. int
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
id String
ID of the cluster.
instanceTypeConfigs Changes to this property will trigger replacement. List<Property Map>
Configuration block for instance fleet.
launchSpecifications Changes to this property will trigger replacement. Property Map
Configuration block for launch specification.
name Changes to this property will trigger replacement. String
Friendly name given to the instance fleet.
provisionedOnDemandCapacity Number
provisionedSpotCapacity Number
targetOnDemandCapacity Changes to this property will trigger replacement. Number
Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
targetSpotCapacity Changes to this property will trigger replacement. Number
Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.

ClusterMasterInstanceFleetInstanceTypeConfig
, ClusterMasterInstanceFleetInstanceTypeConfigArgs

InstanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type, such as m4.xlarge.
BidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
BidPriceAsPercentageOfOnDemandPrice Changes to this property will trigger replacement. double
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
Configurations Changes to this property will trigger replacement. List<ClusterMasterInstanceFleetInstanceTypeConfigConfiguration>
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
EbsConfigs Changes to this property will trigger replacement. List<ClusterMasterInstanceFleetInstanceTypeConfigEbsConfig>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
WeightedCapacity Changes to this property will trigger replacement. int
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
InstanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type, such as m4.xlarge.
BidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
BidPriceAsPercentageOfOnDemandPrice Changes to this property will trigger replacement. float64
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
Configurations Changes to this property will trigger replacement. []ClusterMasterInstanceFleetInstanceTypeConfigConfiguration
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
EbsConfigs Changes to this property will trigger replacement. []ClusterMasterInstanceFleetInstanceTypeConfigEbsConfig
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
WeightedCapacity Changes to this property will trigger replacement. int
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
instanceType
This property is required.
Changes to this property will trigger replacement.
String
EC2 instance type, such as m4.xlarge.
bidPrice Changes to this property will trigger replacement. String
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
bidPriceAsPercentageOfOnDemandPrice Changes to this property will trigger replacement. Double
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
configurations Changes to this property will trigger replacement. List<ClusterMasterInstanceFleetInstanceTypeConfigConfiguration>
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
ebsConfigs Changes to this property will trigger replacement. List<ClusterMasterInstanceFleetInstanceTypeConfigEbsConfig>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
weightedCapacity Changes to this property will trigger replacement. Integer
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
instanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type, such as m4.xlarge.
bidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
bidPriceAsPercentageOfOnDemandPrice Changes to this property will trigger replacement. number
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
configurations Changes to this property will trigger replacement. ClusterMasterInstanceFleetInstanceTypeConfigConfiguration[]
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
ebsConfigs Changes to this property will trigger replacement. ClusterMasterInstanceFleetInstanceTypeConfigEbsConfig[]
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
weightedCapacity Changes to this property will trigger replacement. number
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
instance_type
This property is required.
Changes to this property will trigger replacement.
str
EC2 instance type, such as m4.xlarge.
bid_price Changes to this property will trigger replacement. str
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
bid_price_as_percentage_of_on_demand_price Changes to this property will trigger replacement. float
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
configurations Changes to this property will trigger replacement. Sequence[ClusterMasterInstanceFleetInstanceTypeConfigConfiguration]
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
ebs_configs Changes to this property will trigger replacement. Sequence[ClusterMasterInstanceFleetInstanceTypeConfigEbsConfig]
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
weighted_capacity Changes to this property will trigger replacement. int
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
instanceType
This property is required.
Changes to this property will trigger replacement.
String
EC2 instance type, such as m4.xlarge.
bidPrice Changes to this property will trigger replacement. String
Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
bidPriceAsPercentageOfOnDemandPrice Changes to this property will trigger replacement. Number
Bid price, as a percentage of On-Demand price, for each EC2 Spot instance as defined by instance_type. Expressed as a number (for example, 20 specifies 20%). If neither bid_price nor bid_price_as_percentage_of_on_demand_price is provided, bid_price_as_percentage_of_on_demand_price defaults to 100%.
configurations Changes to this property will trigger replacement. List<Property Map>
Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configuration blocks.
ebsConfigs Changes to this property will trigger replacement. List<Property Map>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
weightedCapacity Changes to this property will trigger replacement. Number
Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.

ClusterMasterInstanceFleetInstanceTypeConfigConfiguration
, ClusterMasterInstanceFleetInstanceTypeConfigConfigurationArgs

Classification Changes to this property will trigger replacement. string
Classification within a configuration.
Properties Changes to this property will trigger replacement. Dictionary<string, string>
Map of properties specified within a configuration classification.
Classification Changes to this property will trigger replacement. string
Classification within a configuration.
Properties Changes to this property will trigger replacement. map[string]string
Map of properties specified within a configuration classification.
classification Changes to this property will trigger replacement. String
Classification within a configuration.
properties Changes to this property will trigger replacement. Map<String,String>
Map of properties specified within a configuration classification.
classification Changes to this property will trigger replacement. string
Classification within a configuration.
properties Changes to this property will trigger replacement. {[key: string]: string}
Map of properties specified within a configuration classification.
classification Changes to this property will trigger replacement. str
Classification within a configuration.
properties Changes to this property will trigger replacement. Mapping[str, str]
Map of properties specified within a configuration classification.
classification Changes to this property will trigger replacement. String
Classification within a configuration.
properties Changes to this property will trigger replacement. Map<String>
Map of properties specified within a configuration classification.

ClusterMasterInstanceFleetInstanceTypeConfigEbsConfig
, ClusterMasterInstanceFleetInstanceTypeConfigEbsConfigArgs

Size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
Type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
Iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
VolumesPerInstance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
Size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
Type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
Iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
VolumesPerInstance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
Integer
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
String
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. Integer
Number of I/O operations per second (IOPS) that the volume supports.
volumesPerInstance Changes to this property will trigger replacement. Integer
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
number
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. number
Number of I/O operations per second (IOPS) that the volume supports.
volumesPerInstance Changes to this property will trigger replacement. number
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
str
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
volumes_per_instance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
Number
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
String
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. Number
Number of I/O operations per second (IOPS) that the volume supports.
volumesPerInstance Changes to this property will trigger replacement. Number
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).

ClusterMasterInstanceFleetLaunchSpecifications
, ClusterMasterInstanceFleetLaunchSpecificationsArgs

OnDemandSpecifications Changes to this property will trigger replacement. List<ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecification>
Configuration block for on demand instances launch specifications.
SpotSpecifications Changes to this property will trigger replacement. List<ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecification>
Configuration block for spot instances launch specifications.
OnDemandSpecifications Changes to this property will trigger replacement. []ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecification
Configuration block for on demand instances launch specifications.
SpotSpecifications Changes to this property will trigger replacement. []ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecification
Configuration block for spot instances launch specifications.
onDemandSpecifications Changes to this property will trigger replacement. List<ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecification>
Configuration block for on demand instances launch specifications.
spotSpecifications Changes to this property will trigger replacement. List<ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecification>
Configuration block for spot instances launch specifications.
onDemandSpecifications Changes to this property will trigger replacement. ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecification[]
Configuration block for on demand instances launch specifications.
spotSpecifications Changes to this property will trigger replacement. ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecification[]
Configuration block for spot instances launch specifications.
on_demand_specifications Changes to this property will trigger replacement. Sequence[ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecification]
Configuration block for on demand instances launch specifications.
spot_specifications Changes to this property will trigger replacement. Sequence[ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecification]
Configuration block for spot instances launch specifications.
onDemandSpecifications Changes to this property will trigger replacement. List<Property Map>
Configuration block for on demand instances launch specifications.
spotSpecifications Changes to this property will trigger replacement. List<Property Map>
Configuration block for spot instances launch specifications.

ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecification
, ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs

AllocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.
AllocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
String
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.
allocation_strategy
This property is required.
Changes to this property will trigger replacement.
str
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
String
Specifies the strategy to use in launching On-Demand instance fleets. Currently, the only option is lowest-price (the default), which launches the lowest price first.

ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecification
, ClusterMasterInstanceFleetLaunchSpecificationsSpotSpecificationArgs

AllocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
TimeoutAction
This property is required.
Changes to this property will trigger replacement.
string
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
TimeoutDurationMinutes
This property is required.
Changes to this property will trigger replacement.
int
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
BlockDurationMinutes Changes to this property will trigger replacement. int
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.
AllocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
TimeoutAction
This property is required.
Changes to this property will trigger replacement.
string
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
TimeoutDurationMinutes
This property is required.
Changes to this property will trigger replacement.
int
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
BlockDurationMinutes Changes to this property will trigger replacement. int
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
String
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
timeoutAction
This property is required.
Changes to this property will trigger replacement.
String
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
timeoutDurationMinutes
This property is required.
Changes to this property will trigger replacement.
Integer
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
blockDurationMinutes Changes to this property will trigger replacement. Integer
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
string
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
timeoutAction
This property is required.
Changes to this property will trigger replacement.
string
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
timeoutDurationMinutes
This property is required.
Changes to this property will trigger replacement.
number
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
blockDurationMinutes Changes to this property will trigger replacement. number
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.
allocation_strategy
This property is required.
Changes to this property will trigger replacement.
str
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
timeout_action
This property is required.
Changes to this property will trigger replacement.
str
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
timeout_duration_minutes
This property is required.
Changes to this property will trigger replacement.
int
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
block_duration_minutes Changes to this property will trigger replacement. int
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.
allocationStrategy
This property is required.
Changes to this property will trigger replacement.
String
Specifies the strategy to use in launching Spot instance fleets. Valid values include capacity-optimized, diversified, lowest-price, price-capacity-optimized. See the AWS documentation for details on each strategy type.
timeoutAction
This property is required.
Changes to this property will trigger replacement.
String
Action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired; that is, when all Spot instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies that if no Spot instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
timeoutDurationMinutes
This property is required.
Changes to this property will trigger replacement.
Number
Spot provisioning timeout period in minutes. If Spot instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
blockDurationMinutes Changes to this property will trigger replacement. Number
Defined duration for Spot instances (also known as Spot blocks) in minutes. When specified, the Spot instance does not terminate before the defined duration expires, and defined duration pricing for Spot instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates.

ClusterMasterInstanceGroup
, ClusterMasterInstanceGroupArgs

InstanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type for all instances in the instance group.
BidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
EbsConfigs Changes to this property will trigger replacement. List<ClusterMasterInstanceGroupEbsConfig>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
Id string
Master node type Instance Group ID, if using Instance Group for this node type.
InstanceCount Changes to this property will trigger replacement. int
Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's core_instance_group to be configured. Public (Internet accessible) instances must be created in VPC subnets that have map public IP on launch enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the termination_protection = false configuration applied before destroying this resource.
Name Changes to this property will trigger replacement. string
Friendly name given to the instance group.
InstanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type for all instances in the instance group.
BidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
EbsConfigs Changes to this property will trigger replacement. []ClusterMasterInstanceGroupEbsConfig
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
Id string
Master node type Instance Group ID, if using Instance Group for this node type.
InstanceCount Changes to this property will trigger replacement. int
Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's core_instance_group to be configured. Public (Internet accessible) instances must be created in VPC subnets that have map public IP on launch enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the termination_protection = false configuration applied before destroying this resource.
Name Changes to this property will trigger replacement. string
Friendly name given to the instance group.
instanceType
This property is required.
Changes to this property will trigger replacement.
String
EC2 instance type for all instances in the instance group.
bidPrice Changes to this property will trigger replacement. String
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ebsConfigs Changes to this property will trigger replacement. List<ClusterMasterInstanceGroupEbsConfig>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
id String
Master node type Instance Group ID, if using Instance Group for this node type.
instanceCount Changes to this property will trigger replacement. Integer
Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's core_instance_group to be configured. Public (Internet accessible) instances must be created in VPC subnets that have map public IP on launch enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the termination_protection = false configuration applied before destroying this resource.
name Changes to this property will trigger replacement. String
Friendly name given to the instance group.
instanceType
This property is required.
Changes to this property will trigger replacement.
string
EC2 instance type for all instances in the instance group.
bidPrice Changes to this property will trigger replacement. string
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ebsConfigs Changes to this property will trigger replacement. ClusterMasterInstanceGroupEbsConfig[]
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
id string
Master node type Instance Group ID, if using Instance Group for this node type.
instanceCount Changes to this property will trigger replacement. number
Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's core_instance_group to be configured. Public (Internet accessible) instances must be created in VPC subnets that have map public IP on launch enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the termination_protection = false configuration applied before destroying this resource.
name Changes to this property will trigger replacement. string
Friendly name given to the instance group.
instance_type
This property is required.
Changes to this property will trigger replacement.
str
EC2 instance type for all instances in the instance group.
bid_price Changes to this property will trigger replacement. str
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ebs_configs Changes to this property will trigger replacement. Sequence[ClusterMasterInstanceGroupEbsConfig]
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
id str
Master node type Instance Group ID, if using Instance Group for this node type.
instance_count Changes to this property will trigger replacement. int
Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's core_instance_group to be configured. Public (Internet accessible) instances must be created in VPC subnets that have map public IP on launch enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the termination_protection = false configuration applied before destroying this resource.
name Changes to this property will trigger replacement. str
Friendly name given to the instance group.
instanceType
This property is required.
Changes to this property will trigger replacement.
String
EC2 instance type for all instances in the instance group.
bidPrice Changes to this property will trigger replacement. String
Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
ebsConfigs Changes to this property will trigger replacement. List<Property Map>
Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
id String
Master node type Instance Group ID, if using Instance Group for this node type.
instanceCount Changes to this property will trigger replacement. Number
Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's core_instance_group to be configured. Public (Internet accessible) instances must be created in VPC subnets that have map public IP on launch enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the termination_protection = false configuration applied before destroying this resource.
name Changes to this property will trigger replacement. String
Friendly name given to the instance group.

ClusterMasterInstanceGroupEbsConfig
, ClusterMasterInstanceGroupEbsConfigArgs

Size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
Type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
Iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
Throughput Changes to this property will trigger replacement. int
The throughput, in mebibyte per second (MiB/s).
VolumesPerInstance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
Size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
Type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
Iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
Throughput Changes to this property will trigger replacement. int
The throughput, in mebibyte per second (MiB/s).
VolumesPerInstance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
Integer
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
String
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. Integer
Number of I/O operations per second (IOPS) that the volume supports.
throughput Changes to this property will trigger replacement. Integer
The throughput, in mebibyte per second (MiB/s).
volumesPerInstance Changes to this property will trigger replacement. Integer
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
number
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
string
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. number
Number of I/O operations per second (IOPS) that the volume supports.
throughput Changes to this property will trigger replacement. number
The throughput, in mebibyte per second (MiB/s).
volumesPerInstance Changes to this property will trigger replacement. number
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
int
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
str
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. int
Number of I/O operations per second (IOPS) that the volume supports.
throughput Changes to this property will trigger replacement. int
The throughput, in mebibyte per second (MiB/s).
volumes_per_instance Changes to this property will trigger replacement. int
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
size
This property is required.
Changes to this property will trigger replacement.
Number
Volume size, in gibibytes (GiB).
type
This property is required.
Changes to this property will trigger replacement.
String
Volume type. Valid options are gp3, gp2, io1, io2, standard, st1 and sc1. See EBS Volume Types.
iops Changes to this property will trigger replacement. Number
Number of I/O operations per second (IOPS) that the volume supports.
throughput Changes to this property will trigger replacement. Number
The throughput, in mebibyte per second (MiB/s).
volumesPerInstance Changes to this property will trigger replacement. Number
Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).

ClusterPlacementGroupConfig
, ClusterPlacementGroupConfigArgs

InstanceRole
This property is required.
Changes to this property will trigger replacement.
string
Role of the instance in the cluster. Valid Values: MASTER, CORE, TASK.
PlacementStrategy Changes to this property will trigger replacement. string
EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD, PARTITION, CLUSTER, NONE.
InstanceRole
This property is required.
Changes to this property will trigger replacement.
string
Role of the instance in the cluster. Valid Values: MASTER, CORE, TASK.
PlacementStrategy Changes to this property will trigger replacement. string
EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD, PARTITION, CLUSTER, NONE.
instanceRole
This property is required.
Changes to this property will trigger replacement.
String
Role of the instance in the cluster. Valid Values: MASTER, CORE, TASK.
placementStrategy Changes to this property will trigger replacement. String
EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD, PARTITION, CLUSTER, NONE.
instanceRole
This property is required.
Changes to this property will trigger replacement.
string
Role of the instance in the cluster. Valid Values: MASTER, CORE, TASK.
placementStrategy Changes to this property will trigger replacement. string
EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD, PARTITION, CLUSTER, NONE.
instance_role
This property is required.
Changes to this property will trigger replacement.
str
Role of the instance in the cluster. Valid Values: MASTER, CORE, TASK.
placement_strategy Changes to this property will trigger replacement. str
EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD, PARTITION, CLUSTER, NONE.
instanceRole
This property is required.
Changes to this property will trigger replacement.
String
Role of the instance in the cluster. Valid Values: MASTER, CORE, TASK.
placementStrategy Changes to this property will trigger replacement. String
EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD, PARTITION, CLUSTER, NONE.

ClusterStep
, ClusterStepArgs

ActionOnFailure
This property is required.
Changes to this property will trigger replacement.
string
Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE
HadoopJarStep
This property is required.
Changes to this property will trigger replacement.
ClusterStepHadoopJarStep
JAR file used for the step. See below.
Name
This property is required.
Changes to this property will trigger replacement.
string
Name of the step.
ActionOnFailure
This property is required.
Changes to this property will trigger replacement.
string
Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE
HadoopJarStep
This property is required.
Changes to this property will trigger replacement.
ClusterStepHadoopJarStep
JAR file used for the step. See below.
Name
This property is required.
Changes to this property will trigger replacement.
string
Name of the step.
actionOnFailure
This property is required.
Changes to this property will trigger replacement.
String
Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE
hadoopJarStep
This property is required.
Changes to this property will trigger replacement.
ClusterStepHadoopJarStep
JAR file used for the step. See below.
name
This property is required.
Changes to this property will trigger replacement.
String
Name of the step.
actionOnFailure
This property is required.
Changes to this property will trigger replacement.
string
Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE
hadoopJarStep
This property is required.
Changes to this property will trigger replacement.
ClusterStepHadoopJarStep
JAR file used for the step. See below.
name
This property is required.
Changes to this property will trigger replacement.
string
Name of the step.
action_on_failure
This property is required.
Changes to this property will trigger replacement.
str
Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE
hadoop_jar_step
This property is required.
Changes to this property will trigger replacement.
ClusterStepHadoopJarStep
JAR file used for the step. See below.
name
This property is required.
Changes to this property will trigger replacement.
str
Name of the step.
actionOnFailure
This property is required.
Changes to this property will trigger replacement.
String
Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE
hadoopJarStep
This property is required.
Changes to this property will trigger replacement.
Property Map
JAR file used for the step. See below.
name
This property is required.
Changes to this property will trigger replacement.
String
Name of the step.

ClusterStepHadoopJarStep
, ClusterStepHadoopJarStepArgs

Jar
This property is required.
Changes to this property will trigger replacement.
string
Path to a JAR file run during the step.
Args Changes to this property will trigger replacement. List<string>
List of command line arguments passed to the JAR file's main function when executed.
MainClass Changes to this property will trigger replacement. string
Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file.
Properties Changes to this property will trigger replacement. Dictionary<string, string>
Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.
Jar
This property is required.
Changes to this property will trigger replacement.
string
Path to a JAR file run during the step.
Args Changes to this property will trigger replacement. []string
List of command line arguments passed to the JAR file's main function when executed.
MainClass Changes to this property will trigger replacement. string
Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file.
Properties Changes to this property will trigger replacement. map[string]string
Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.
jar
This property is required.
Changes to this property will trigger replacement.
String
Path to a JAR file run during the step.
args Changes to this property will trigger replacement. List<String>
List of command line arguments passed to the JAR file's main function when executed.
mainClass Changes to this property will trigger replacement. String
Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file.
properties Changes to this property will trigger replacement. Map<String,String>
Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.
jar
This property is required.
Changes to this property will trigger replacement.
string
Path to a JAR file run during the step.
args Changes to this property will trigger replacement. string[]
List of command line arguments passed to the JAR file's main function when executed.
mainClass Changes to this property will trigger replacement. string
Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file.
properties Changes to this property will trigger replacement. {[key: string]: string}
Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.
jar
This property is required.
Changes to this property will trigger replacement.
str
Path to a JAR file run during the step.
args Changes to this property will trigger replacement. Sequence[str]
List of command line arguments passed to the JAR file's main function when executed.
main_class Changes to this property will trigger replacement. str
Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file.
properties Changes to this property will trigger replacement. Mapping[str, str]
Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.
jar
This property is required.
Changes to this property will trigger replacement.
String
Path to a JAR file run during the step.
args Changes to this property will trigger replacement. List<String>
List of command line arguments passed to the JAR file's main function when executed.
mainClass Changes to this property will trigger replacement. String
Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file.
properties Changes to this property will trigger replacement. Map<String>
Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.

Import

Using pulumi import, import EMR clusters using the id. For example:

$ pulumi import aws:emr/cluster:Cluster cluster j-123456ABCDEF
Copy

Since the API does not return the actual values for Kerberos configurations, environments with those options set will need to use the lifecycle configuration block ignore_changes argument available to all Pulumi resources to prevent perpetual differences. For example:

To learn more about importing existing cloud resources, see Importing resources.

Package Details

Repository
AWS Classic pulumi/pulumi-aws
License
Apache-2.0
Notes
This Pulumi package is based on the aws Terraform Provider.