RunJobFlow
RunJobFlow creates and starts running a new cluster (job flow). The cluster runs the
steps specified. After the steps complete, the cluster stops and the HDFS partition is
lost. To prevent loss of data, configure the last step of the job flow to store results in
Amazon S3. If the JobFlowInstancesConfig
KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the cluster
transitions to the WAITING state rather than shutting down after the steps have completed.
For additional protection, you can set the JobFlowInstancesConfig
TerminationProtected parameter to TRUE to lock the cluster and
prevent it from being terminated by API call, user intervention, or in the event of a job
flow error.
A maximum of 256 steps are allowed in each job flow.
If your cluster is long-running (such as a Hive data warehouse) or complex, you may require more than 256 steps to process your data. You can bypass the 256-step limitation in various ways, including using the SSH shell to connect to the master node and submitting queries directly to the software running on the master node, such as Hive and Hadoop.
For long-running clusters, we recommend that you periodically store your results.
Note
The instance fleets configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow request can contain InstanceFleets parameters or InstanceGroups parameters, but not both.
Request Syntax
{
"AdditionalInfo": "string",
"AmiVersion": "string",
"Applications": [
{
"AdditionalInfo": {
"string" : "string"
},
"Args": [ "string" ],
"Name": "string",
"Version": "string"
}
],
"AutoScalingRole": "string",
"AutoTerminationPolicy": {
"IdleTimeout": number
},
"BootstrapActions": [
{
"Name": "string",
"ScriptBootstrapAction": {
"Args": [ "string" ],
"Path": "string"
}
}
],
"Configurations": [
{
"Classification": "string",
"Configurations": [
"Configuration"
],
"Properties": {
"string" : "string"
}
}
],
"CustomAmiId": "string",
"EbsRootVolumeIops": number,
"EbsRootVolumeSize": number,
"EbsRootVolumeThroughput": number,
"ExtendedSupport": boolean,
"Instances": {
"AdditionalMasterSecurityGroups": [ "string" ],
"AdditionalSlaveSecurityGroups": [ "string" ],
"Ec2KeyName": "string",
"Ec2SubnetId": "string",
"Ec2SubnetIds": [ "string" ],
"EmrManagedMasterSecurityGroup": "string",
"EmrManagedSlaveSecurityGroup": "string",
"HadoopVersion": "string",
"InstanceCount": number,
"InstanceFleets": [
{
"Context": "string",
"InstanceFleetType": "string",
"InstanceTypeConfigs": [
{
"BidPrice": "string",
"BidPriceAsPercentageOfOnDemandPrice": number,
"Configurations": [
{
"Classification": "string",
"Configurations": [
"Configuration"
],
"Properties": {
"string" : "string"
}
}
],
"CustomAmiId": "string",
"EbsConfiguration": {
"EbsBlockDeviceConfigs": [
{
"VolumeSpecification": {
"Iops": number,
"SizeInGB": number,
"Throughput": number,
"VolumeType": "string"
},
"VolumesPerInstance": number
}
],
"EbsOptimized": boolean
},
"InstanceType": "string",
"Priority": number,
"WeightedCapacity": number
}
],
"LaunchSpecifications": {
"OnDemandSpecification": {
"AllocationStrategy": "string",
"CapacityReservationOptions": {
"CapacityReservationPreference": "string",
"CapacityReservationResourceGroupArn": "string",
"UsageStrategy": "string"
}
},
"SpotSpecification": {
"AllocationStrategy": "string",
"BlockDurationMinutes": number,
"TimeoutAction": "string",
"TimeoutDurationMinutes": number
}
},
"Name": "string",
"ResizeSpecifications": {
"OnDemandResizeSpecification": {
"AllocationStrategy": "string",
"CapacityReservationOptions": {
"CapacityReservationPreference": "string",
"CapacityReservationResourceGroupArn": "string",
"UsageStrategy": "string"
},
"TimeoutDurationMinutes": number
},
"SpotResizeSpecification": {
"AllocationStrategy": "string",
"TimeoutDurationMinutes": number
}
},
"TargetOnDemandCapacity": number,
"TargetSpotCapacity": number
}
],
"InstanceGroups": [
{
"AutoScalingPolicy": {
"Constraints": {
"MaxCapacity": number,
"MinCapacity": number
},
"Rules": [
{
"Action": {
"Market": "string",
"SimpleScalingPolicyConfiguration": {
"AdjustmentType": "string",
"CoolDown": number,
"ScalingAdjustment": number
}
},
"Description": "string",
"Name": "string",
"Trigger": {
"CloudWatchAlarmDefinition": {
"ComparisonOperator": "string",
"Dimensions": [
{
"Key": "string",
"Value": "string"
}
],
"EvaluationPeriods": number,
"MetricName": "string",
"Namespace": "string",
"Period": number,
"Statistic": "string",
"Threshold": number,
"Unit": "string"
}
}
}
]
},
"BidPrice": "string",
"Configurations": [
{
"Classification": "string",
"Configurations": [
"Configuration"
],
"Properties": {
"string" : "string"
}
}
],
"CustomAmiId": "string",
"EbsConfiguration": {
"EbsBlockDeviceConfigs": [
{
"VolumeSpecification": {
"Iops": number,
"SizeInGB": number,
"Throughput": number,
"VolumeType": "string"
},
"VolumesPerInstance": number
}
],
"EbsOptimized": boolean
},
"InstanceCount": number,
"InstanceRole": "string",
"InstanceType": "string",
"Market": "string",
"Name": "string"
}
],
"KeepJobFlowAliveWhenNoSteps": boolean,
"MasterInstanceType": "string",
"Placement": {
"AvailabilityZone": "string",
"AvailabilityZones": [ "string" ]
},
"ServiceAccessSecurityGroup": "string",
"SlaveInstanceType": "string",
"TerminationProtected": boolean,
"UnhealthyNodeReplacement": boolean
},
"JobFlowRole": "string",
"KerberosAttributes": {
"ADDomainJoinPassword": "string",
"ADDomainJoinUser": "string",
"CrossRealmTrustPrincipalPassword": "string",
"KdcAdminPassword": "string",
"Realm": "string"
},
"LogEncryptionKmsKeyId": "string",
"LogUri": "string",
"ManagedScalingPolicy": {
"ComputeLimits": {
"MaximumCapacityUnits": number,
"MaximumCoreCapacityUnits": number,
"MaximumOnDemandCapacityUnits": number,
"MinimumCapacityUnits": number,
"UnitType": "string"
},
"ScalingStrategy": "string",
"UtilizationPerformanceIndex": number
},
"MonitoringConfiguration": {
"CloudWatchLogConfiguration": {
"Enabled": boolean,
"EncryptionKeyArn": "string",
"LogGroupName": "string",
"LogStreamNamePrefix": "string",
"LogTypes": {
"string" : [ "string" ]
}
},
"S3LoggingConfiguration": {
"LogTypeUploadPolicy": {
"string" : "string"
}
}
},
"Name": "string",
"NewSupportedProducts": [
{
"Args": [ "string" ],
"Name": "string"
}
],
"OSReleaseLabel": "string",
"PlacementGroupConfigs": [
{
"InstanceRole": "string",
"PlacementStrategy": "string"
}
],
"ReleaseLabel": "string",
"RepoUpgradeOnBoot": "string",
"ScaleDownBehavior": "string",
"SecurityConfiguration": "string",
"ServiceRole": "string",
"SessionEnabled": boolean,
"