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,
});
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"])
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
	})
}
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,
    });
});
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());
    }
}
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}
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,
});
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)
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
	})
}
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,
    });
});
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());
    }
}
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
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"],
    },
}]});
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"],
    },
}])
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
	})
}
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",
                    },
                },
            },
        },
    });
});
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());
    }
}
resources:
  example:
    type: aws:emr:Cluster
    properties:
      steps:
        - actionOnFailure: TERMINATE_CLUSTER
          name: Setup Hadoop Debugging
          hadoopJarStep:
            jar: command-runner.jar
            args:
              - state-pusher-script
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: {},
});
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={})
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
	})
}
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,
    });
});
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());
    }
}
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: {}
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 string
- The unique name of the resource.
- args ClusterArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args 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 string
- The unique name of the resource.
- args ClusterArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ClusterArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args 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,
});
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),
})
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());
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)
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,
});
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
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 string
- Release label for the Amazon EMR release.
- ServiceRole string
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- AdditionalInfo 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 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.
- AutoTermination ClusterPolicy Auto Termination Policy 
- 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 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 List<ClusterBootstrap Action> 
- Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
- Configurations 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 string
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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": {} } ]
- CoreInstance ClusterFleet Core Instance Fleet 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- CoreInstance ClusterGroup Core Instance Group 
- Configuration block to use an Instance Group for the core node type.
- CustomAmi stringId 
- Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
- EbsRoot intVolume Size 
- 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
ClusterEc2Attributes 
- Attributes for the EC2 instances running the job flow. See below.
- KeepJob boolFlow Alive When No Steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- KerberosAttributes ClusterKerberos Attributes 
- Kerberos configuration for the cluster. See below.
- ListSteps List<string>States 
- List of step states used to filter returned steps
- LogEncryption stringKms Key Id 
- 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 string
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- MasterInstance ClusterFleet Master Instance Fleet 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- MasterInstance ClusterGroup Master Instance Group 
- Configuration block to use an Instance Group for the master node type.
- Name string
- Name of the job flow.
- PlacementGroup List<ClusterConfigs Placement Group Config> 
- The specified placement group configuration for an Amazon EMR cluster.
- ScaleDown stringBehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- SecurityConfiguration string
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- StepConcurrency intLevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- Steps
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 ignoreChangesif other steps are being managed outside of this provider.
- Dictionary<string, string>
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration 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 tofalse.
- UnhealthyNode boolReplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- VisibleTo boolAll Users 
- Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
- ReleaseLabel string
- Release label for the Amazon EMR release.
- ServiceRole string
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- AdditionalInfo 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 []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.
- AutoTermination ClusterPolicy Auto Termination Policy Args 
- 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 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 []ClusterBootstrap Action Args 
- Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
- Configurations 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 string
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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": {} } ]
- CoreInstance ClusterFleet Core Instance Fleet Args 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- CoreInstance ClusterGroup Core Instance Group Args 
- Configuration block to use an Instance Group for the core node type.
- CustomAmi stringId 
- Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
- EbsRoot intVolume Size 
- 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
ClusterEc2Attributes Args 
- Attributes for the EC2 instances running the job flow. See below.
- KeepJob boolFlow Alive When No Steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- KerberosAttributes ClusterKerberos Attributes Args 
- Kerberos configuration for the cluster. See below.
- ListSteps []stringStates 
- List of step states used to filter returned steps
- LogEncryption stringKms Key Id 
- 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 string
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- MasterInstance ClusterFleet Master Instance Fleet Args 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- MasterInstance ClusterGroup Master Instance Group Args 
- Configuration block to use an Instance Group for the master node type.
- Name string
- Name of the job flow.
- PlacementGroup []ClusterConfigs Placement Group Config Args 
- The specified placement group configuration for an Amazon EMR cluster.
- ScaleDown stringBehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- SecurityConfiguration string
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- StepConcurrency intLevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- Steps
[]ClusterStep Args 
- List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChangesif other steps are being managed outside of this provider.
- map[string]string
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration 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 tofalse.
- UnhealthyNode boolReplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- VisibleTo boolAll Users 
- Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
- releaseLabel String
- Release label for the Amazon EMR release.
- serviceRole String
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- additionalInfo 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 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.
- autoTermination ClusterPolicy Auto Termination Policy 
- 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 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 List<ClusterBootstrap Action> 
- Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
- configurations 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 String
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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": {} } ]
- coreInstance ClusterFleet Core Instance Fleet 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- coreInstance ClusterGroup Core Instance Group 
- Configuration block to use an Instance Group for the core node type.
- customAmi StringId 
- Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
- ebsRoot IntegerVolume Size 
- 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
ClusterEc2Attributes 
- Attributes for the EC2 instances running the job flow. See below.
- keepJob BooleanFlow Alive When No Steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- kerberosAttributes ClusterKerberos Attributes 
- Kerberos configuration for the cluster. See below.
- listSteps List<String>States 
- List of step states used to filter returned steps
- logEncryption StringKms Key Id 
- 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 String
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- masterInstance ClusterFleet Master Instance Fleet 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- masterInstance ClusterGroup Master Instance Group 
- Configuration block to use an Instance Group for the master node type.
- name String
- Name of the job flow.
- placementGroup List<ClusterConfigs Placement Group Config> 
- The specified placement group configuration for an Amazon EMR cluster.
- scaleDown StringBehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- securityConfiguration String
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- stepConcurrency IntegerLevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- steps
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 ignoreChangesif other steps are being managed outside of this provider.
- Map<String,String>
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration 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 tofalse.
- unhealthyNode BooleanReplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- visibleTo BooleanAll Users 
- Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
- releaseLabel string
- Release label for the Amazon EMR release.
- serviceRole string
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- additionalInfo 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 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.
- autoTermination ClusterPolicy Auto Termination Policy 
- 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 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 ClusterBootstrap Action[] 
- Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
- configurations 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 string
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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": {} } ]
- coreInstance ClusterFleet Core Instance Fleet 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- coreInstance ClusterGroup Core Instance Group 
- Configuration block to use an Instance Group for the core node type.
- customAmi stringId 
- Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
- ebsRoot numberVolume Size 
- 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
ClusterEc2Attributes 
- Attributes for the EC2 instances running the job flow. See below.
- keepJob booleanFlow Alive When No Steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- kerberosAttributes ClusterKerberos Attributes 
- Kerberos configuration for the cluster. See below.
- listSteps string[]States 
- List of step states used to filter returned steps
- logEncryption stringKms Key Id 
- 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 string
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- masterInstance ClusterFleet Master Instance Fleet 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- masterInstance ClusterGroup Master Instance Group 
- Configuration block to use an Instance Group for the master node type.
- name string
- Name of the job flow.
- placementGroup ClusterConfigs Placement Group Config[] 
- The specified placement group configuration for an Amazon EMR cluster.
- scaleDown stringBehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- securityConfiguration string
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- stepConcurrency numberLevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- steps
ClusterStep[] 
- List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChangesif other steps are being managed outside of this provider.
- {[key: string]: string}
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration 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 tofalse.
- unhealthyNode booleanReplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- visibleTo booleanAll Users 
- 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 str
- Release label for the Amazon EMR release.
- service_role str
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- additional_info 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 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_ Clusterpolicy Auto Termination Policy Args 
- 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 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 Sequence[ClusterBootstrap Action Args] 
- Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
- configurations 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 str
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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_ Clusterfleet Core Instance Fleet Args 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- core_instance_ Clustergroup Core Instance Group Args 
- Configuration block to use an Instance Group for the core node type.
- custom_ami_ strid 
- 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_ intvolume_ size 
- 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 ClusterEc2Attributes Args 
- Attributes for the EC2 instances running the job flow. See below.
- keep_job_ boolflow_ alive_ when_ no_ steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- kerberos_attributes ClusterKerberos Attributes Args 
- Kerberos configuration for the cluster. See below.
- list_steps_ Sequence[str]states 
- List of step states used to filter returned steps
- log_encryption_ strkms_ key_ id 
- 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 str
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- master_instance_ Clusterfleet Master Instance Fleet Args 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- master_instance_ Clustergroup Master Instance Group Args 
- Configuration block to use an Instance Group for the master node type.
- name str
- Name of the job flow.
- placement_group_ Sequence[Clusterconfigs Placement Group Config Args] 
- The specified placement group configuration for an Amazon EMR cluster.
- scale_down_ strbehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- security_configuration str
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- step_concurrency_ intlevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- steps
Sequence[ClusterStep Args] 
- List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChangesif other steps are being managed outside of this provider.
- Mapping[str, str]
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration 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 tofalse.
- unhealthy_node_ boolreplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- visible_to_ boolall_ users 
- Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
- releaseLabel String
- Release label for the Amazon EMR release.
- serviceRole String
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- additionalInfo 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 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.
- autoTermination Property MapPolicy 
- 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 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 List<Property Map>
- Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
- configurations 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 String
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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": {} } ]
- coreInstance Property MapFleet 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- coreInstance Property MapGroup 
- Configuration block to use an Instance Group for the core node type.
- customAmi StringId 
- Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
- ebsRoot NumberVolume Size 
- 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 Property Map
- Attributes for the EC2 instances running the job flow. See below.
- keepJob BooleanFlow Alive When No Steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- kerberosAttributes Property Map
- Kerberos configuration for the cluster. See below.
- listSteps List<String>States 
- List of step states used to filter returned steps
- logEncryption StringKms Key Id 
- 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 String
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- masterInstance Property MapFleet 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- masterInstance Property MapGroup 
- Configuration block to use an Instance Group for the master node type.
- name String
- Name of the job flow.
- placementGroup List<Property Map>Configs 
- The specified placement group configuration for an Amazon EMR cluster.
- scaleDown StringBehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- securityConfiguration String
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- stepConcurrency NumberLevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- steps 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 ignoreChangesif other steps are being managed outside of this provider.
- Map<String>
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration 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 tofalse.
- unhealthyNode BooleanReplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- visibleTo BooleanAll Users 
- 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.
- MasterPublic stringDns 
- 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
- Dictionary<string, string>
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- Arn string
- ARN of the cluster.
- ClusterState string
- Id string
- The provider-assigned unique ID for this managed resource.
- MasterPublic stringDns 
- 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.
- map[string]string
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- arn String
- ARN of the cluster.
- clusterState String
- id String
- The provider-assigned unique ID for this managed resource.
- masterPublic StringDns 
- 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.
- Map<String,String>
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- arn string
- ARN of the cluster.
- clusterState string
- id string
- The provider-assigned unique ID for this managed resource.
- masterPublic stringDns 
- 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.
- {[key: string]: string}
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- arn str
- ARN of the cluster.
- cluster_state str
- id str
- The provider-assigned unique ID for this managed resource.
- master_public_ strdns 
- 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.
- Mapping[str, str]
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- arn String
- ARN of the cluster.
- clusterState String
- id String
- The provider-assigned unique ID for this managed resource.
- masterPublic StringDns 
- 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.
- Map<String>
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
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) -> Clusterfunc 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
- The unique name of the resulting resource.
- id
- 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
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- 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
- The unique name of the resulting resource.
- id
- 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
- The unique name of the resulting resource.
- id
- 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.
- AdditionalInfo 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 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.
- AutoTermination ClusterPolicy Auto Termination Policy 
- 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 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 List<ClusterBootstrap Action> 
- Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
- Configurations 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 string
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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": {} } ]
- CoreInstance ClusterFleet Core Instance Fleet 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- CoreInstance ClusterGroup Core Instance Group 
- Configuration block to use an Instance Group for the core node type.
- CustomAmi stringId 
- Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
- EbsRoot intVolume Size 
- 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
ClusterEc2Attributes 
- Attributes for the EC2 instances running the job flow. See below.
- KeepJob boolFlow Alive When No Steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- KerberosAttributes ClusterKerberos Attributes 
- Kerberos configuration for the cluster. See below.
- ListSteps List<string>States 
- List of step states used to filter returned steps
- LogEncryption stringKms Key Id 
- 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 string
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- MasterInstance ClusterFleet Master Instance Fleet 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- MasterInstance ClusterGroup Master Instance Group 
- Configuration block to use an Instance Group for the master node type.
- MasterPublic stringDns 
- 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 string
- Name of the job flow.
- PlacementGroup List<ClusterConfigs Placement Group Config> 
- The specified placement group configuration for an Amazon EMR cluster.
- ReleaseLabel string
- Release label for the Amazon EMR release.
- ScaleDown stringBehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- SecurityConfiguration string
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- ServiceRole string
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- State string
- StepConcurrency intLevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- Steps
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 ignoreChangesif other steps are being managed outside of this provider.
- Dictionary<string, string>
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- Dictionary<string, string>
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- 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 tofalse.
- UnhealthyNode boolReplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- VisibleTo boolAll Users 
- Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
- AdditionalInfo 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 []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.
- AutoTermination ClusterPolicy Auto Termination Policy Args 
- 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 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 []ClusterBootstrap Action Args 
- Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
- ClusterState string
- Configurations 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 string
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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": {} } ]
- CoreInstance ClusterFleet Core Instance Fleet Args 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- CoreInstance ClusterGroup Core Instance Group Args 
- Configuration block to use an Instance Group for the core node type.
- CustomAmi stringId 
- Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
- EbsRoot intVolume Size 
- 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
ClusterEc2Attributes Args 
- Attributes for the EC2 instances running the job flow. See below.
- KeepJob boolFlow Alive When No Steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- KerberosAttributes ClusterKerberos Attributes Args 
- Kerberos configuration for the cluster. See below.
- ListSteps []stringStates 
- List of step states used to filter returned steps
- LogEncryption stringKms Key Id 
- 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 string
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- MasterInstance ClusterFleet Master Instance Fleet Args 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- MasterInstance ClusterGroup Master Instance Group Args 
- Configuration block to use an Instance Group for the master node type.
- MasterPublic stringDns 
- 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 string
- Name of the job flow.
- PlacementGroup []ClusterConfigs Placement Group Config Args 
- The specified placement group configuration for an Amazon EMR cluster.
- ReleaseLabel string
- Release label for the Amazon EMR release.
- ScaleDown stringBehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- SecurityConfiguration string
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- ServiceRole string
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- StepConcurrency intLevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- Steps
[]ClusterStep Args 
- List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChangesif other steps are being managed outside of this provider.
- map[string]string
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- map[string]string
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- 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 tofalse.
- UnhealthyNode boolReplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- VisibleTo boolAll Users 
- Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
- additionalInfo 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 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.
- autoTermination ClusterPolicy Auto Termination Policy 
- 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 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 List<ClusterBootstrap Action> 
- Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
- clusterState String
- configurations 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 String
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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": {} } ]
- coreInstance ClusterFleet Core Instance Fleet 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- coreInstance ClusterGroup Core Instance Group 
- Configuration block to use an Instance Group for the core node type.
- customAmi StringId 
- Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
- ebsRoot IntegerVolume Size 
- 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
ClusterEc2Attributes 
- Attributes for the EC2 instances running the job flow. See below.
- keepJob BooleanFlow Alive When No Steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- kerberosAttributes ClusterKerberos Attributes 
- Kerberos configuration for the cluster. See below.
- listSteps List<String>States 
- List of step states used to filter returned steps
- logEncryption StringKms Key Id 
- 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 String
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- masterInstance ClusterFleet Master Instance Fleet 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- masterInstance ClusterGroup Master Instance Group 
- Configuration block to use an Instance Group for the master node type.
- masterPublic StringDns 
- 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 String
- Name of the job flow.
- placementGroup List<ClusterConfigs Placement Group Config> 
- The specified placement group configuration for an Amazon EMR cluster.
- releaseLabel String
- Release label for the Amazon EMR release.
- scaleDown StringBehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- securityConfiguration String
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- serviceRole String
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- stepConcurrency IntegerLevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- steps
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 ignoreChangesif other steps are being managed outside of this provider.
- Map<String,String>
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- Map<String,String>
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- 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 tofalse.
- unhealthyNode BooleanReplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- visibleTo BooleanAll Users 
- Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
- additionalInfo 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 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.
- autoTermination ClusterPolicy Auto Termination Policy 
- 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 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 ClusterBootstrap Action[] 
- Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
- clusterState string
- configurations 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 string
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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": {} } ]
- coreInstance ClusterFleet Core Instance Fleet 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- coreInstance ClusterGroup Core Instance Group 
- Configuration block to use an Instance Group for the core node type.
- customAmi stringId 
- Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
- ebsRoot numberVolume Size 
- 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
ClusterEc2Attributes 
- Attributes for the EC2 instances running the job flow. See below.
- keepJob booleanFlow Alive When No Steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- kerberosAttributes ClusterKerberos Attributes 
- Kerberos configuration for the cluster. See below.
- listSteps string[]States 
- List of step states used to filter returned steps
- logEncryption stringKms Key Id 
- 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 string
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- masterInstance ClusterFleet Master Instance Fleet 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- masterInstance ClusterGroup Master Instance Group 
- Configuration block to use an Instance Group for the master node type.
- masterPublic stringDns 
- 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 string
- Name of the job flow.
- placementGroup ClusterConfigs Placement Group Config[] 
- The specified placement group configuration for an Amazon EMR cluster.
- releaseLabel string
- Release label for the Amazon EMR release.
- scaleDown stringBehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- securityConfiguration string
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- serviceRole string
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- stepConcurrency numberLevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- steps
ClusterStep[] 
- List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChangesif other steps are being managed outside of this provider.
- {[key: string]: string}
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- {[key: string]: string}
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- 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 tofalse.
- unhealthyNode booleanReplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- visibleTo booleanAll Users 
- 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 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 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_ Clusterpolicy Auto Termination Policy Args 
- 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 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 Sequence[ClusterBootstrap Action Args] 
- Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. See below.
- cluster_state str
- configurations 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 str
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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_ Clusterfleet Core Instance Fleet Args 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- core_instance_ Clustergroup Core Instance Group Args 
- Configuration block to use an Instance Group for the core node type.
- custom_ami_ strid 
- 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_ intvolume_ size 
- 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 ClusterEc2Attributes Args 
- Attributes for the EC2 instances running the job flow. See below.
- keep_job_ boolflow_ alive_ when_ no_ steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- kerberos_attributes ClusterKerberos Attributes Args 
- Kerberos configuration for the cluster. See below.
- list_steps_ Sequence[str]states 
- List of step states used to filter returned steps
- log_encryption_ strkms_ key_ id 
- 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 str
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- master_instance_ Clusterfleet Master Instance Fleet Args 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- master_instance_ Clustergroup Master Instance Group Args 
- Configuration block to use an Instance Group for the master node type.
- master_public_ strdns 
- 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 str
- Name of the job flow.
- placement_group_ Sequence[Clusterconfigs Placement Group Config Args] 
- The specified placement group configuration for an Amazon EMR cluster.
- release_label str
- Release label for the Amazon EMR release.
- scale_down_ strbehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- security_configuration str
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- service_role str
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- step_concurrency_ intlevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- steps
Sequence[ClusterStep Args] 
- List of steps to run when creating the cluster. See below. It is highly recommended to utilize the lifecycle resource options block with ignoreChangesif other steps are being managed outside of this provider.
- Mapping[str, str]
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- Mapping[str, str]
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- 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 tofalse.
- unhealthy_node_ boolreplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- visible_to_ boolall_ users 
- Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default value is true.
- additionalInfo 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 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.
- autoTermination Property MapPolicy 
- 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 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 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 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 String
- JSON string for supplying list of configurations for the EMR cluster. - NOTE on - configurations_json: If the- Configurationsvalue is empty then you should skip the- Configurationsfield 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: - [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ]});- 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": {} } ]
- coreInstance Property MapFleet 
- Configuration block to use an Instance Fleet for the core node type. Cannot be specified if any core_instance_groupconfiguration blocks are set. Detailed below.
- coreInstance Property MapGroup 
- Configuration block to use an Instance Group for the core node type.
- customAmi StringId 
- Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
- ebsRoot NumberVolume Size 
- 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 Property Map
- Attributes for the EC2 instances running the job flow. See below.
- keepJob BooleanFlow Alive When No Steps 
- Switch on/off run cluster with no steps or when all steps are complete (default is on)
- kerberosAttributes Property Map
- Kerberos configuration for the cluster. See below.
- listSteps List<String>States 
- List of step states used to filter returned steps
- logEncryption StringKms Key Id 
- 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 String
- S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created.
- masterInstance Property MapFleet 
- Configuration block to use an Instance Fleet for the master node type. Cannot be specified if any master_instance_groupconfiguration blocks are set. Detailed below.
- masterInstance Property MapGroup 
- Configuration block to use an Instance Group for the master node type.
- masterPublic StringDns 
- 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 String
- Name of the job flow.
- placementGroup List<Property Map>Configs 
- The specified placement group configuration for an Amazon EMR cluster.
- releaseLabel String
- Release label for the Amazon EMR release.
- scaleDown StringBehavior 
- Way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance groupis resized.
- securityConfiguration String
- Security configuration name to attach to the EMR cluster. Only valid for EMR clusters with release_label4.8.0 or greater.
- serviceRole String
- IAM role that will be assumed by the Amazon EMR service to access AWS resources. - The following arguments are optional: 
- stepConcurrency NumberLevel 
- Number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with release_label5.28.0 or greater (default is 1).
- steps 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 ignoreChangesif other steps are being managed outside of this provider.
- Map<String>
- list of tags to apply to the EMR Cluster. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- Map<String>
- Map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- 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 tofalse.
- unhealthyNode BooleanReplacement 
- Whether whether Amazon EMR should gracefully replace core nodes that have degraded within the cluster. Default value is false.
- visibleTo BooleanAll Users 
- 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 60seconds and a maximum of604800seconds (seven days).
- IdleTimeout int
- Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of 60seconds and a maximum of604800seconds (seven days).
- idleTimeout Integer
- Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of 60seconds and a maximum of604800seconds (seven days).
- idleTimeout number
- Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of 60seconds and a maximum of604800seconds (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 60seconds and a maximum of604800seconds (seven days).
- idleTimeout Number
- Specifies the amount of idle time in seconds after which the cluster automatically terminates. You can specify a minimum of 60seconds and a maximum of604800seconds (seven days).
ClusterBootstrapAction, ClusterBootstrapActionArgs      
ClusterCoreInstanceFleet, ClusterCoreInstanceFleetArgs        
- Id string
- ID of the cluster.
- InstanceType List<ClusterConfigs Core Instance Fleet Instance Type Config> 
- Configuration block for instance fleet.
- LaunchSpecifications ClusterCore Instance Fleet Launch Specifications 
- Configuration block for launch specification.
- Name string
- Friendly name given to the instance fleet.
- ProvisionedOn intDemand Capacity 
- ProvisionedSpot intCapacity 
- TargetOn intDemand Capacity 
- The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- TargetSpot intCapacity 
- Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
- Id string
- ID of the cluster.
- InstanceType []ClusterConfigs Core Instance Fleet Instance Type Config 
- Configuration block for instance fleet.
- LaunchSpecifications ClusterCore Instance Fleet Launch Specifications 
- Configuration block for launch specification.
- Name string
- Friendly name given to the instance fleet.
- ProvisionedOn intDemand Capacity 
- ProvisionedSpot intCapacity 
- TargetOn intDemand Capacity 
- The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- TargetSpot intCapacity 
- Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
- id String
- ID of the cluster.
- instanceType List<ClusterConfigs Core Instance Fleet Instance Type Config> 
- Configuration block for instance fleet.
- launchSpecifications ClusterCore Instance Fleet Launch Specifications 
- Configuration block for launch specification.
- name String
- Friendly name given to the instance fleet.
- provisionedOn IntegerDemand Capacity 
- provisionedSpot IntegerCapacity 
- targetOn IntegerDemand Capacity 
- The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- targetSpot IntegerCapacity 
- Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
- id string
- ID of the cluster.
- instanceType ClusterConfigs Core Instance Fleet Instance Type Config[] 
- Configuration block for instance fleet.
- launchSpecifications ClusterCore Instance Fleet Launch Specifications 
- Configuration block for launch specification.
- name string
- Friendly name given to the instance fleet.
- provisionedOn numberDemand Capacity 
- provisionedSpot numberCapacity 
- targetOn numberDemand Capacity 
- The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- targetSpot numberCapacity 
- 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_ Sequence[Clusterconfigs Core Instance Fleet Instance Type Config] 
- Configuration block for instance fleet.
- launch_specifications ClusterCore Instance Fleet Launch Specifications 
- Configuration block for launch specification.
- name str
- Friendly name given to the instance fleet.
- provisioned_on_ intdemand_ capacity 
- provisioned_spot_ intcapacity 
- target_on_ intdemand_ capacity 
- The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- target_spot_ intcapacity 
- Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
- id String
- ID of the cluster.
- instanceType List<Property Map>Configs 
- Configuration block for instance fleet.
- launchSpecifications Property Map
- Configuration block for launch specification.
- name String
- Friendly name given to the instance fleet.
- provisionedOn NumberDemand Capacity 
- provisionedSpot NumberCapacity 
- targetOn NumberDemand Capacity 
- The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- targetSpot NumberCapacity 
- Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
ClusterCoreInstanceFleetInstanceTypeConfig, ClusterCoreInstanceFleetInstanceTypeConfigArgs              
- InstanceType string
- EC2 instance type, such as m4.xlarge.
- BidPrice string
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- BidPrice doubleAs Percentage Of On Demand Price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- Configurations
List<ClusterCore Instance Fleet Instance Type Config Configuration> 
- Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configurationblocks.
- EbsConfigs List<ClusterCore Instance Fleet Instance Type Config Ebs Config> 
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- WeightedCapacity int
- Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
- InstanceType string
- EC2 instance type, such as m4.xlarge.
- BidPrice string
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- BidPrice float64As Percentage Of On Demand Price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- Configurations
[]ClusterCore Instance Fleet Instance Type Config Configuration 
- Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configurationblocks.
- EbsConfigs []ClusterCore Instance Fleet Instance Type Config Ebs Config 
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- WeightedCapacity int
- Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
- instanceType String
- EC2 instance type, such as m4.xlarge.
- bidPrice String
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- bidPrice DoubleAs Percentage Of On Demand Price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- configurations
List<ClusterCore Instance Fleet Instance Type Config Configuration> 
- Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configurationblocks.
- ebsConfigs List<ClusterCore Instance Fleet Instance Type Config Ebs Config> 
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- weightedCapacity Integer
- Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
- instanceType string
- EC2 instance type, such as m4.xlarge.
- bidPrice string
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- bidPrice numberAs Percentage Of On Demand Price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- configurations
ClusterCore Instance Fleet Instance Type Config Configuration[] 
- Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configurationblocks.
- ebsConfigs ClusterCore Instance Fleet Instance Type Config Ebs Config[] 
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- weightedCapacity number
- Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
- instance_type str
- EC2 instance type, such as m4.xlarge.
- bid_price str
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- bid_price_ floatas_ percentage_ of_ on_ demand_ price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- configurations
Sequence[ClusterCore Instance Fleet Instance Type Config Configuration] 
- Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configurationblocks.
- ebs_configs Sequence[ClusterCore Instance Fleet Instance Type Config Ebs Config] 
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- weighted_capacity int
- Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
- instanceType String
- EC2 instance type, such as m4.xlarge.
- bidPrice String
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- bidPrice NumberAs Percentage Of On Demand Price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- configurations 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 configurationblocks.
- ebsConfigs List<Property Map>
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- weightedCapacity 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 string
- Classification within a configuration.
- Properties Dictionary<string, string>
- Map of properties specified within a configuration classification.
- Classification string
- Classification within a configuration.
- Properties map[string]string
- Map of properties specified within a configuration classification.
- classification String
- Classification within a configuration.
- properties Map<String,String>
- Map of properties specified within a configuration classification.
- classification string
- Classification within a configuration.
- properties {[key: string]: string}
- Map of properties specified within a configuration classification.
- classification str
- Classification within a configuration.
- properties Mapping[str, str]
- Map of properties specified within a configuration classification.
- classification String
- Classification within a configuration.
- properties Map<String>
- Map of properties specified within a configuration classification.
ClusterCoreInstanceFleetInstanceTypeConfigEbsConfig, ClusterCoreInstanceFleetInstanceTypeConfigEbsConfigArgs                  
- Size int
- Volume size, in gibibytes (GiB).
- Type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- Iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- VolumesPer intInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- Size int
- Volume size, in gibibytes (GiB).
- Type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- Iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- VolumesPer intInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size Integer
- Volume size, in gibibytes (GiB).
- type String
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops Integer
- Number of I/O operations per second (IOPS) that the volume supports.
- volumesPer IntegerInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size number
- Volume size, in gibibytes (GiB).
- type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops number
- Number of I/O operations per second (IOPS) that the volume supports.
- volumesPer numberInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size int
- Volume size, in gibibytes (GiB).
- type str
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- volumes_per_ intinstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size Number
- Volume size, in gibibytes (GiB).
- type String
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops Number
- Number of I/O operations per second (IOPS) that the volume supports.
- volumesPer NumberInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
ClusterCoreInstanceFleetLaunchSpecifications, ClusterCoreInstanceFleetLaunchSpecificationsArgs            
- OnDemand List<ClusterSpecifications Core Instance Fleet Launch Specifications On Demand Specification> 
- Configuration block for on demand instances launch specifications.
- SpotSpecifications List<ClusterCore Instance Fleet Launch Specifications Spot Specification> 
- Configuration block for spot instances launch specifications.
- OnDemand []ClusterSpecifications Core Instance Fleet Launch Specifications On Demand Specification 
- Configuration block for on demand instances launch specifications.
- SpotSpecifications []ClusterCore Instance Fleet Launch Specifications Spot Specification 
- Configuration block for spot instances launch specifications.
- onDemand List<ClusterSpecifications Core Instance Fleet Launch Specifications On Demand Specification> 
- Configuration block for on demand instances launch specifications.
- spotSpecifications List<ClusterCore Instance Fleet Launch Specifications Spot Specification> 
- Configuration block for spot instances launch specifications.
- onDemand ClusterSpecifications Core Instance Fleet Launch Specifications On Demand Specification[] 
- Configuration block for on demand instances launch specifications.
- spotSpecifications ClusterCore Instance Fleet Launch Specifications Spot Specification[] 
- Configuration block for spot instances launch specifications.
- on_demand_ Sequence[Clusterspecifications Core Instance Fleet Launch Specifications On Demand Specification] 
- Configuration block for on demand instances launch specifications.
- spot_specifications Sequence[ClusterCore Instance Fleet Launch Specifications Spot Specification] 
- Configuration block for spot instances launch specifications.
- onDemand List<Property Map>Specifications 
- Configuration block for on demand instances launch specifications.
- spotSpecifications List<Property Map>
- Configuration block for spot instances launch specifications.
ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecification, ClusterCoreInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs                  
- AllocationStrategy 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 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 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 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 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 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 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 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_CLUSTERandSWITCH_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.
- TimeoutDuration intMinutes 
- 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.
- BlockDuration intMinutes 
- 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 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 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_CLUSTERandSWITCH_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.
- TimeoutDuration intMinutes 
- 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.
- BlockDuration intMinutes 
- 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 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 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_CLUSTERandSWITCH_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.
- timeoutDuration IntegerMinutes 
- 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.
- blockDuration IntegerMinutes 
- 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 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 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_CLUSTERandSWITCH_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.
- timeoutDuration numberMinutes 
- 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.
- blockDuration numberMinutes 
- 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 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 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_CLUSTERandSWITCH_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_ intminutes 
- 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_ intminutes 
- 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 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 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_CLUSTERandSWITCH_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.
- timeoutDuration NumberMinutes 
- 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.
- blockDuration NumberMinutes 
- 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 string
- EC2 instance type for all instances in the instance group.
- AutoscalingPolicy string
- String containing the EMR Auto Scaling Policy JSON.
- BidPrice 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 List<ClusterCore Instance Group Ebs Config> 
- 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 string
- Friendly name given to the instance group.
- InstanceType string
- EC2 instance type for all instances in the instance group.
- AutoscalingPolicy string
- String containing the EMR Auto Scaling Policy JSON.
- BidPrice 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 []ClusterCore Instance Group Ebs Config 
- 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 string
- Friendly name given to the instance group.
- instanceType String
- EC2 instance type for all instances in the instance group.
- autoscalingPolicy String
- String containing the EMR Auto Scaling Policy JSON.
- bidPrice 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 List<ClusterCore Instance Group Ebs Config> 
- 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 String
- Friendly name given to the instance group.
- instanceType string
- EC2 instance type for all instances in the instance group.
- autoscalingPolicy string
- String containing the EMR Auto Scaling Policy JSON.
- bidPrice 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 ClusterCore Instance Group Ebs Config[] 
- 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 string
- Friendly name given to the instance group.
- instance_type str
- EC2 instance type for all instances in the instance group.
- autoscaling_policy str
- String containing the EMR Auto Scaling Policy JSON.
- bid_price 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 Sequence[ClusterCore Instance Group Ebs Config] 
- 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 str
- Friendly name given to the instance group.
- instanceType String
- EC2 instance type for all instances in the instance group.
- autoscalingPolicy String
- String containing the EMR Auto Scaling Policy JSON.
- bidPrice 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 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 String
- Friendly name given to the instance group.
ClusterCoreInstanceGroupEbsConfig, ClusterCoreInstanceGroupEbsConfigArgs            
- Size int
- Volume size, in gibibytes (GiB).
- Type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- Iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- Throughput int
- The throughput, in mebibyte per second (MiB/s).
- VolumesPer intInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- Size int
- Volume size, in gibibytes (GiB).
- Type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- Iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- Throughput int
- The throughput, in mebibyte per second (MiB/s).
- VolumesPer intInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size Integer
- Volume size, in gibibytes (GiB).
- type String
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops Integer
- Number of I/O operations per second (IOPS) that the volume supports.
- throughput Integer
- The throughput, in mebibyte per second (MiB/s).
- volumesPer IntegerInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size number
- Volume size, in gibibytes (GiB).
- type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops number
- Number of I/O operations per second (IOPS) that the volume supports.
- throughput number
- The throughput, in mebibyte per second (MiB/s).
- volumesPer numberInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size int
- Volume size, in gibibytes (GiB).
- type str
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- throughput int
- The throughput, in mebibyte per second (MiB/s).
- volumes_per_ intinstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size Number
- Volume size, in gibibytes (GiB).
- type String
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops Number
- Number of I/O operations per second (IOPS) that the volume supports.
- throughput Number
- The throughput, in mebibyte per second (MiB/s).
- volumesPer NumberInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
ClusterEc2Attributes, ClusterEc2AttributesArgs    
- InstanceProfile string
- Instance Profile for EC2 instances of the cluster assume this role.
- AdditionalMaster stringSecurity Groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
- AdditionalSlave stringSecurity Groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
- EmrManaged stringMaster Security Group 
- Identifier of the Amazon EC2 EMR-Managed security group for the master node.
- EmrManaged stringSlave Security Group 
- Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
- KeyName string
- Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
- ServiceAccess stringSecurity Group 
- Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
- SubnetId string
- VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlargeinstance type for nodes of a job flow launched in an Amazon VPC.
- SubnetIds 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_groupand- 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_deleteoptional attribute for any Security Group used in- emr_managed_master_security_groupand- emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.
- InstanceProfile string
- Instance Profile for EC2 instances of the cluster assume this role.
- AdditionalMaster stringSecurity Groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
- AdditionalSlave stringSecurity Groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
- EmrManaged stringMaster Security Group 
- Identifier of the Amazon EC2 EMR-Managed security group for the master node.
- EmrManaged stringSlave Security Group 
- Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
- KeyName string
- Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
- ServiceAccess stringSecurity Group 
- Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
- SubnetId string
- VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlargeinstance type for nodes of a job flow launched in an Amazon VPC.
- SubnetIds []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_groupand- 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_deleteoptional attribute for any Security Group used in- emr_managed_master_security_groupand- emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.
- instanceProfile String
- Instance Profile for EC2 instances of the cluster assume this role.
- additionalMaster StringSecurity Groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
- additionalSlave StringSecurity Groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
- emrManaged StringMaster Security Group 
- Identifier of the Amazon EC2 EMR-Managed security group for the master node.
- emrManaged StringSlave Security Group 
- Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
- keyName String
- Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
- serviceAccess StringSecurity Group 
- Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
- subnetId String
- VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlargeinstance type for nodes of a job flow launched in an Amazon VPC.
- subnetIds 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_groupand- 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_deleteoptional attribute for any Security Group used in- emr_managed_master_security_groupand- emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.
- instanceProfile string
- Instance Profile for EC2 instances of the cluster assume this role.
- additionalMaster stringSecurity Groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
- additionalSlave stringSecurity Groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
- emrManaged stringMaster Security Group 
- Identifier of the Amazon EC2 EMR-Managed security group for the master node.
- emrManaged stringSlave Security Group 
- Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
- keyName string
- Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
- serviceAccess stringSecurity Group 
- Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
- subnetId string
- VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlargeinstance type for nodes of a job flow launched in an Amazon VPC.
- subnetIds 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_groupand- 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_deleteoptional attribute for any Security Group used in- emr_managed_master_security_groupand- emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.
- instance_profile str
- Instance Profile for EC2 instances of the cluster assume this role.
- additional_master_ strsecurity_ groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
- additional_slave_ strsecurity_ groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
- emr_managed_ strmaster_ security_ group 
- Identifier of the Amazon EC2 EMR-Managed security group for the master node.
- emr_managed_ strslave_ security_ group 
- Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
- key_name str
- Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
- service_access_ strsecurity_ group 
- Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
- subnet_id str
- VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlargeinstance type for nodes of a job flow launched in an Amazon VPC.
- subnet_ids 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_groupand- 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_deleteoptional attribute for any Security Group used in- emr_managed_master_security_groupand- emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.
- instanceProfile String
- Instance Profile for EC2 instances of the cluster assume this role.
- additionalMaster StringSecurity Groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the master node.
- additionalSlave StringSecurity Groups 
- String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string.
- emrManaged StringMaster Security Group 
- Identifier of the Amazon EC2 EMR-Managed security group for the master node.
- emrManaged StringSlave Security Group 
- Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes.
- keyName String
- Amazon EC2 key pair that can be used to ssh to the master node as the user called hadoop.
- serviceAccess StringSecurity Group 
- Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet.
- subnetId String
- VPC subnet id where you want the job flow to launch. Cannot specify the cc1.4xlargeinstance type for nodes of a job flow launched in an Amazon VPC.
- subnetIds 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_groupand- 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_deleteoptional attribute for any Security Group used in- emr_managed_master_security_groupand- emr_managed_slave_security_group. See Amazon EMR-Managed Security Groups for more information about the EMR-managed security group rules.
ClusterKerberosAttributes, ClusterKerberosAttributesArgs      
- KdcAdmin stringPassword 
- 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 string
- Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
- AdDomain stringJoin Password 
- Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
- AdDomain stringJoin User 
- 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.
- CrossRealm stringTrust Principal Password 
- 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.
- KdcAdmin stringPassword 
- 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 string
- Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
- AdDomain stringJoin Password 
- Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
- AdDomain stringJoin User 
- 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.
- CrossRealm stringTrust Principal Password 
- 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.
- kdcAdmin StringPassword 
- 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 String
- Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
- adDomain StringJoin Password 
- Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
- adDomain StringJoin User 
- 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.
- crossRealm StringTrust Principal Password 
- 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.
- kdcAdmin stringPassword 
- 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 string
- Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
- adDomain stringJoin Password 
- Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
- adDomain stringJoin User 
- 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.
- crossRealm stringTrust Principal Password 
- 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_ strpassword 
- 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 str
- Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
- ad_domain_ strjoin_ password 
- Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
- ad_domain_ strjoin_ user 
- 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_ strtrust_ principal_ password 
- 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.
- kdcAdmin StringPassword 
- 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 String
- Name of the Kerberos realm to which all nodes in a cluster belong. For example, EC2.INTERNAL
- adDomain StringJoin Password 
- Active Directory password for ad_domain_join_user. This provider cannot perform drift detection of this configuration.
- adDomain StringJoin User 
- 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.
- crossRealm StringTrust Principal Password 
- 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.
- InstanceType List<ClusterConfigs Master Instance Fleet Instance Type Config> 
- Configuration block for instance fleet.
- LaunchSpecifications ClusterMaster Instance Fleet Launch Specifications 
- Configuration block for launch specification.
- Name string
- Friendly name given to the instance fleet.
- ProvisionedOn intDemand Capacity 
- ProvisionedSpot intCapacity 
- TargetOn intDemand Capacity 
- Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- TargetSpot intCapacity 
- Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
- Id string
- ID of the cluster.
- InstanceType []ClusterConfigs Master Instance Fleet Instance Type Config 
- Configuration block for instance fleet.
- LaunchSpecifications ClusterMaster Instance Fleet Launch Specifications 
- Configuration block for launch specification.
- Name string
- Friendly name given to the instance fleet.
- ProvisionedOn intDemand Capacity 
- ProvisionedSpot intCapacity 
- TargetOn intDemand Capacity 
- Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- TargetSpot intCapacity 
- Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
- id String
- ID of the cluster.
- instanceType List<ClusterConfigs Master Instance Fleet Instance Type Config> 
- Configuration block for instance fleet.
- launchSpecifications ClusterMaster Instance Fleet Launch Specifications 
- Configuration block for launch specification.
- name String
- Friendly name given to the instance fleet.
- provisionedOn IntegerDemand Capacity 
- provisionedSpot IntegerCapacity 
- targetOn IntegerDemand Capacity 
- Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- targetSpot IntegerCapacity 
- Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
- id string
- ID of the cluster.
- instanceType ClusterConfigs Master Instance Fleet Instance Type Config[] 
- Configuration block for instance fleet.
- launchSpecifications ClusterMaster Instance Fleet Launch Specifications 
- Configuration block for launch specification.
- name string
- Friendly name given to the instance fleet.
- provisionedOn numberDemand Capacity 
- provisionedSpot numberCapacity 
- targetOn numberDemand Capacity 
- Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- targetSpot numberCapacity 
- 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_ Sequence[Clusterconfigs Master Instance Fleet Instance Type Config] 
- Configuration block for instance fleet.
- launch_specifications ClusterMaster Instance Fleet Launch Specifications 
- Configuration block for launch specification.
- name str
- Friendly name given to the instance fleet.
- provisioned_on_ intdemand_ capacity 
- provisioned_spot_ intcapacity 
- target_on_ intdemand_ capacity 
- Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- target_spot_ intcapacity 
- Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
- id String
- ID of the cluster.
- instanceType List<Property Map>Configs 
- Configuration block for instance fleet.
- launchSpecifications Property Map
- Configuration block for launch specification.
- name String
- Friendly name given to the instance fleet.
- provisionedOn NumberDemand Capacity 
- provisionedSpot NumberCapacity 
- targetOn NumberDemand Capacity 
- Target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.
- targetSpot NumberCapacity 
- Target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.
ClusterMasterInstanceFleetInstanceTypeConfig, ClusterMasterInstanceFleetInstanceTypeConfigArgs              
- InstanceType string
- EC2 instance type, such as m4.xlarge.
- BidPrice string
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- BidPrice doubleAs Percentage Of On Demand Price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- Configurations
List<ClusterMaster Instance Fleet Instance Type Config Configuration> 
- Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configurationblocks.
- EbsConfigs List<ClusterMaster Instance Fleet Instance Type Config Ebs Config> 
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- WeightedCapacity int
- Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
- InstanceType string
- EC2 instance type, such as m4.xlarge.
- BidPrice string
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- BidPrice float64As Percentage Of On Demand Price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- Configurations
[]ClusterMaster Instance Fleet Instance Type Config Configuration 
- Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configurationblocks.
- EbsConfigs []ClusterMaster Instance Fleet Instance Type Config Ebs Config 
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- WeightedCapacity int
- Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
- instanceType String
- EC2 instance type, such as m4.xlarge.
- bidPrice String
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- bidPrice DoubleAs Percentage Of On Demand Price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- configurations
List<ClusterMaster Instance Fleet Instance Type Config Configuration> 
- Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configurationblocks.
- ebsConfigs List<ClusterMaster Instance Fleet Instance Type Config Ebs Config> 
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- weightedCapacity Integer
- Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
- instanceType string
- EC2 instance type, such as m4.xlarge.
- bidPrice string
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- bidPrice numberAs Percentage Of On Demand Price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- configurations
ClusterMaster Instance Fleet Instance Type Config Configuration[] 
- Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configurationblocks.
- ebsConfigs ClusterMaster Instance Fleet Instance Type Config Ebs Config[] 
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- weightedCapacity number
- Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
- instance_type str
- EC2 instance type, such as m4.xlarge.
- bid_price str
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- bid_price_ floatas_ percentage_ of_ on_ demand_ price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- configurations
Sequence[ClusterMaster Instance Fleet Instance Type Config Configuration] 
- Configuration classification that applies when provisioning cluster instances, which can include configurations for applications and software that run on the cluster. List of configurationblocks.
- ebs_configs Sequence[ClusterMaster Instance Fleet Instance Type Config Ebs Config] 
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- weighted_capacity int
- Number of units that a provisioned instance of this type provides toward fulfilling the target capacities defined in aws.emr.InstanceFleet.
- instanceType String
- EC2 instance type, such as m4.xlarge.
- bidPrice String
- Bid price for each EC2 Spot instance type as defined by instance_type. Expressed in USD. If neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- bidPrice NumberAs Percentage Of On Demand Price 
- 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 neitherbid_pricenorbid_price_as_percentage_of_on_demand_priceis provided,bid_price_as_percentage_of_on_demand_pricedefaults to 100%.
- configurations 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 configurationblocks.
- ebsConfigs List<Property Map>
- Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
- weightedCapacity 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 string
- Classification within a configuration.
- Properties Dictionary<string, string>
- Map of properties specified within a configuration classification.
- Classification string
- Classification within a configuration.
- Properties map[string]string
- Map of properties specified within a configuration classification.
- classification String
- Classification within a configuration.
- properties Map<String,String>
- Map of properties specified within a configuration classification.
- classification string
- Classification within a configuration.
- properties {[key: string]: string}
- Map of properties specified within a configuration classification.
- classification str
- Classification within a configuration.
- properties Mapping[str, str]
- Map of properties specified within a configuration classification.
- classification String
- Classification within a configuration.
- properties Map<String>
- Map of properties specified within a configuration classification.
ClusterMasterInstanceFleetInstanceTypeConfigEbsConfig, ClusterMasterInstanceFleetInstanceTypeConfigEbsConfigArgs                  
- Size int
- Volume size, in gibibytes (GiB).
- Type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- Iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- VolumesPer intInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- Size int
- Volume size, in gibibytes (GiB).
- Type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- Iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- VolumesPer intInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size Integer
- Volume size, in gibibytes (GiB).
- type String
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops Integer
- Number of I/O operations per second (IOPS) that the volume supports.
- volumesPer IntegerInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size number
- Volume size, in gibibytes (GiB).
- type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops number
- Number of I/O operations per second (IOPS) that the volume supports.
- volumesPer numberInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size int
- Volume size, in gibibytes (GiB).
- type str
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- volumes_per_ intinstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size Number
- Volume size, in gibibytes (GiB).
- type String
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops Number
- Number of I/O operations per second (IOPS) that the volume supports.
- volumesPer NumberInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
ClusterMasterInstanceFleetLaunchSpecifications, ClusterMasterInstanceFleetLaunchSpecificationsArgs            
- OnDemand List<ClusterSpecifications Master Instance Fleet Launch Specifications On Demand Specification> 
- Configuration block for on demand instances launch specifications.
- SpotSpecifications List<ClusterMaster Instance Fleet Launch Specifications Spot Specification> 
- Configuration block for spot instances launch specifications.
- OnDemand []ClusterSpecifications Master Instance Fleet Launch Specifications On Demand Specification 
- Configuration block for on demand instances launch specifications.
- SpotSpecifications []ClusterMaster Instance Fleet Launch Specifications Spot Specification 
- Configuration block for spot instances launch specifications.
- onDemand List<ClusterSpecifications Master Instance Fleet Launch Specifications On Demand Specification> 
- Configuration block for on demand instances launch specifications.
- spotSpecifications List<ClusterMaster Instance Fleet Launch Specifications Spot Specification> 
- Configuration block for spot instances launch specifications.
- onDemand ClusterSpecifications Master Instance Fleet Launch Specifications On Demand Specification[] 
- Configuration block for on demand instances launch specifications.
- spotSpecifications ClusterMaster Instance Fleet Launch Specifications Spot Specification[] 
- Configuration block for spot instances launch specifications.
- on_demand_ Sequence[Clusterspecifications Master Instance Fleet Launch Specifications On Demand Specification] 
- Configuration block for on demand instances launch specifications.
- spot_specifications Sequence[ClusterMaster Instance Fleet Launch Specifications Spot Specification] 
- Configuration block for spot instances launch specifications.
- onDemand List<Property Map>Specifications 
- Configuration block for on demand instances launch specifications.
- spotSpecifications List<Property Map>
- Configuration block for spot instances launch specifications.
ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecification, ClusterMasterInstanceFleetLaunchSpecificationsOnDemandSpecificationArgs                  
- AllocationStrategy 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 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 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 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 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 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 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 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_CLUSTERandSWITCH_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.
- TimeoutDuration intMinutes 
- 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.
- BlockDuration intMinutes 
- 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 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 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_CLUSTERandSWITCH_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.
- TimeoutDuration intMinutes 
- 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.
- BlockDuration intMinutes 
- 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 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 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_CLUSTERandSWITCH_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.
- timeoutDuration IntegerMinutes 
- 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.
- blockDuration IntegerMinutes 
- 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 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 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_CLUSTERandSWITCH_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.
- timeoutDuration numberMinutes 
- 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.
- blockDuration numberMinutes 
- 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 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 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_CLUSTERandSWITCH_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_ intminutes 
- 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_ intminutes 
- 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 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 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_CLUSTERandSWITCH_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.
- timeoutDuration NumberMinutes 
- 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.
- blockDuration NumberMinutes 
- 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 string
- EC2 instance type for all instances in the instance group.
- BidPrice 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 List<ClusterMaster Instance Group Ebs Config> 
- 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 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_groupto 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 thetermination_protection = falseconfiguration applied before destroying this resource.
- Name string
- Friendly name given to the instance group.
- InstanceType string
- EC2 instance type for all instances in the instance group.
- BidPrice 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 []ClusterMaster Instance Group Ebs Config 
- 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 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_groupto 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 thetermination_protection = falseconfiguration applied before destroying this resource.
- Name string
- Friendly name given to the instance group.
- instanceType String
- EC2 instance type for all instances in the instance group.
- bidPrice 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 List<ClusterMaster Instance Group Ebs Config> 
- 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 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_groupto 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 thetermination_protection = falseconfiguration applied before destroying this resource.
- name String
- Friendly name given to the instance group.
- instanceType string
- EC2 instance type for all instances in the instance group.
- bidPrice 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 ClusterMaster Instance Group Ebs Config[] 
- 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 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_groupto 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 thetermination_protection = falseconfiguration applied before destroying this resource.
- name string
- Friendly name given to the instance group.
- instance_type str
- EC2 instance type for all instances in the instance group.
- bid_price 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 Sequence[ClusterMaster Instance Group Ebs Config] 
- 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 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_groupto 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 thetermination_protection = falseconfiguration applied before destroying this resource.
- name str
- Friendly name given to the instance group.
- instanceType String
- EC2 instance type for all instances in the instance group.
- bidPrice 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 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 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_groupto 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 thetermination_protection = falseconfiguration applied before destroying this resource.
- name String
- Friendly name given to the instance group.
ClusterMasterInstanceGroupEbsConfig, ClusterMasterInstanceGroupEbsConfigArgs            
- Size int
- Volume size, in gibibytes (GiB).
- Type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- Iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- Throughput int
- The throughput, in mebibyte per second (MiB/s).
- VolumesPer intInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- Size int
- Volume size, in gibibytes (GiB).
- Type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- Iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- Throughput int
- The throughput, in mebibyte per second (MiB/s).
- VolumesPer intInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size Integer
- Volume size, in gibibytes (GiB).
- type String
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops Integer
- Number of I/O operations per second (IOPS) that the volume supports.
- throughput Integer
- The throughput, in mebibyte per second (MiB/s).
- volumesPer IntegerInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size number
- Volume size, in gibibytes (GiB).
- type string
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops number
- Number of I/O operations per second (IOPS) that the volume supports.
- throughput number
- The throughput, in mebibyte per second (MiB/s).
- volumesPer numberInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size int
- Volume size, in gibibytes (GiB).
- type str
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops int
- Number of I/O operations per second (IOPS) that the volume supports.
- throughput int
- The throughput, in mebibyte per second (MiB/s).
- volumes_per_ intinstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
- size Number
- Volume size, in gibibytes (GiB).
- type String
- Volume type. Valid options are gp3,gp2,io1,io2,standard,st1andsc1. See EBS Volume Types.
- iops Number
- Number of I/O operations per second (IOPS) that the volume supports.
- throughput Number
- The throughput, in mebibyte per second (MiB/s).
- volumesPer NumberInstance 
- Number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1).
ClusterPlacementGroupConfig, ClusterPlacementGroupConfigArgs        
- InstanceRole string
- Role of the instance in the cluster. Valid Values: MASTER,CORE,TASK.
- PlacementStrategy string
- EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD,PARTITION,CLUSTER,NONE.
- InstanceRole string
- Role of the instance in the cluster. Valid Values: MASTER,CORE,TASK.
- PlacementStrategy string
- EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD,PARTITION,CLUSTER,NONE.
- instanceRole String
- Role of the instance in the cluster. Valid Values: MASTER,CORE,TASK.
- placementStrategy String
- EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD,PARTITION,CLUSTER,NONE.
- instanceRole string
- Role of the instance in the cluster. Valid Values: MASTER,CORE,TASK.
- placementStrategy string
- EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD,PARTITION,CLUSTER,NONE.
- instance_role str
- Role of the instance in the cluster. Valid Values: MASTER,CORE,TASK.
- placement_strategy str
- EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD,PARTITION,CLUSTER,NONE.
- instanceRole String
- Role of the instance in the cluster. Valid Values: MASTER,CORE,TASK.
- placementStrategy String
- EC2 Placement Group strategy associated with instance role. Valid Values: SPREAD,PARTITION,CLUSTER,NONE.
ClusterStep, ClusterStepArgs    
- ActionOn stringFailure 
- Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW,TERMINATE_CLUSTER,CANCEL_AND_WAIT, andCONTINUE
- HadoopJar ClusterStep Step Hadoop Jar Step 
- JAR file used for the step. See below.
- Name string
- Name of the step.
- ActionOn stringFailure 
- Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW,TERMINATE_CLUSTER,CANCEL_AND_WAIT, andCONTINUE
- HadoopJar ClusterStep Step Hadoop Jar Step 
- JAR file used for the step. See below.
- Name string
- Name of the step.
- actionOn StringFailure 
- Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW,TERMINATE_CLUSTER,CANCEL_AND_WAIT, andCONTINUE
- hadoopJar ClusterStep Step Hadoop Jar Step 
- JAR file used for the step. See below.
- name String
- Name of the step.
- actionOn stringFailure 
- Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW,TERMINATE_CLUSTER,CANCEL_AND_WAIT, andCONTINUE
- hadoopJar ClusterStep Step Hadoop Jar Step 
- JAR file used for the step. See below.
- name string
- Name of the step.
- action_on_ strfailure 
- Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW,TERMINATE_CLUSTER,CANCEL_AND_WAIT, andCONTINUE
- hadoop_jar_ Clusterstep Step Hadoop Jar Step 
- JAR file used for the step. See below.
- name str
- Name of the step.
- actionOn StringFailure 
- Action to take if the step fails. Valid values: TERMINATE_JOB_FLOW,TERMINATE_CLUSTER,CANCEL_AND_WAIT, andCONTINUE
- hadoopJar Property MapStep 
- JAR file used for the step. See below.
- name String
- Name of the step.
ClusterStepHadoopJarStep, ClusterStepHadoopJarStepArgs          
- Jar string
- Path to a JAR file run during the step.
- Args List<string>
- List of command line arguments passed to the JAR file's main function when executed.
- MainClass 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 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 string
- Path to a JAR file run during the step.
- Args []string
- List of command line arguments passed to the JAR file's main function when executed.
- MainClass 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 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 String
- Path to a JAR file run during the step.
- args List<String>
- List of command line arguments passed to the JAR file's main function when executed.
- mainClass 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 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 string
- Path to a JAR file run during the step.
- args string[]
- List of command line arguments passed to the JAR file's main function when executed.
- mainClass 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 {[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 str
- Path to a JAR file run during the step.
- args Sequence[str]
- List of command line arguments passed to the JAR file's main function when executed.
- main_class 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 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 String
- Path to a JAR file run during the step.
- args List<String>
- List of command line arguments passed to the JAR file's main function when executed.
- mainClass 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 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
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 awsTerraform Provider.