Interface CfnCluster.InstanceFleetConfigProperty
- All Superinterfaces:
software.amazon.jsii.JsiiSerializable
- All Known Implementing Classes:
CfnCluster.InstanceFleetConfigProperty.Jsii$Proxy
- Enclosing class:
- CfnCluster
InstanceFleetConfig
to define instance fleets for an EMR cluster.
A cluster can not use both instance fleets and instance groups. For more information, see Configure Instance Fleets in the Amazon EMR Management Guide .
The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import software.amazon.awscdk.services.emr.*; ConfigurationProperty configurationProperty_; InstanceFleetConfigProperty instanceFleetConfigProperty = InstanceFleetConfigProperty.builder() .instanceTypeConfigs(List.of(InstanceTypeConfigProperty.builder() .instanceType("instanceType") // the properties below are optional .bidPrice("bidPrice") .bidPriceAsPercentageOfOnDemandPrice(123) .configurations(List.of(ConfigurationProperty.builder() .classification("classification") .configurationProperties(Map.of( "configurationPropertiesKey", "configurationProperties")) .configurations(List.of(configurationProperty_)) .build())) .customAmiId("customAmiId") .ebsConfiguration(EbsConfigurationProperty.builder() .ebsBlockDeviceConfigs(List.of(EbsBlockDeviceConfigProperty.builder() .volumeSpecification(VolumeSpecificationProperty.builder() .sizeInGb(123) .volumeType("volumeType") // the properties below are optional .iops(123) .build()) // the properties below are optional .volumesPerInstance(123) .build())) .ebsOptimized(false) .build()) .weightedCapacity(123) .build())) .launchSpecifications(InstanceFleetProvisioningSpecificationsProperty.builder() .onDemandSpecification(OnDemandProvisioningSpecificationProperty.builder() .allocationStrategy("allocationStrategy") .build()) .spotSpecification(SpotProvisioningSpecificationProperty.builder() .timeoutAction("timeoutAction") .timeoutDurationMinutes(123) // the properties below are optional .allocationStrategy("allocationStrategy") .blockDurationMinutes(123) .build()) .build()) .name("name") .targetOnDemandCapacity(123) .targetSpotCapacity(123) .build();
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic final class
A builder forCfnCluster.InstanceFleetConfigProperty
static final class
An implementation forCfnCluster.InstanceFleetConfigProperty
-
Method Summary
Modifier and TypeMethodDescriptionbuilder()
default Object
The instance type configurations that define the Amazon EC2 instances in the instance fleet.default Object
The launch specification for the instance fleet.default String
getName()
The friendly name of the instance fleet.default Number
The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.default Number
The target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.Methods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Method Details
-
getInstanceTypeConfigs
The instance type configurations that define the Amazon EC2 instances in the instance fleet. -
getLaunchSpecifications
The launch specification for the instance fleet. -
getName
The friendly name of the instance fleet. -
getTargetOnDemandCapacity
The target capacity of On-Demand units for the instance fleet, which determines how many On-Demand instances to provision.When the instance fleet launches, Amazon EMR tries to provision On-Demand instances as specified by
InstanceTypeConfig
. Each instance configuration has a specifiedWeightedCapacity
. When an On-Demand instance is provisioned, theWeightedCapacity
units count toward the target capacity. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with aWeightedCapacity
of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units.If not specified or set to 0, only Spot instances are provisioned for the instance fleet using
TargetSpotCapacity
. At least one ofTargetSpotCapacity
andTargetOnDemandCapacity
should be greater than 0. For a master instance fleet, only one ofTargetSpotCapacity
andTargetOnDemandCapacity
can be specified, and its value must be 1. -
getTargetSpotCapacity
The target capacity of Spot units for the instance fleet, which determines how many Spot instances to provision.When the instance fleet launches, Amazon EMR tries to provision Spot instances as specified by
InstanceTypeConfig
. Each instance configuration has a specifiedWeightedCapacity
. When a Spot instance is provisioned, theWeightedCapacity
units count toward the target capacity. Amazon EMR provisions instances until the target capacity is totally fulfilled, even if this results in an overage. For example, if there are 2 units remaining to fulfill capacity, and Amazon EMR can only provision an instance with aWeightedCapacity
of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 units.If not specified or set to 0, only On-Demand instances are provisioned for the instance fleet. At least one of
TargetSpotCapacity
andTargetOnDemandCapacity
should be greater than 0. For a master instance fleet, only one ofTargetSpotCapacity
andTargetOnDemandCapacity
can be specified, and its value must be 1. -
builder
-