2019-02-02 04:30:04 +00:00
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
// snippet-start:[emr.java.createcluster.spark]
import com.amazonaws.AmazonClientException ;
import com.amazonaws.auth.AWSCredentials ;
import com.amazonaws.auth.AWSStaticCredentialsProvider ;
import com.amazonaws.auth.profile.ProfileCredentialsProvider ;
import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce ;
import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder ;
import com.amazonaws.services.elasticmapreduce.model.* ;
import com.amazonaws.services.elasticmapreduce.util.StepFactory ;
public class Main {
public static void main ( String [ ] args ) {
AWSCredentials credentials_profile = null ;
try {
credentials_profile = new ProfileCredentialsProvider ( " default " ) . getCredentials ( ) ;
} catch ( Exception e ) {
throw new AmazonClientException (
" Cannot load credentials from .aws/credentials file. " +
" Make sure that the credentials file exists and the profile name is specified within it. " ,
e ) ;
}
2024-01-16 10:41:11 -05:00
2019-02-02 04:30:04 +00:00
AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder . standard ( )
. withCredentials ( new AWSStaticCredentialsProvider ( credentials_profile ) )
2019-02-06 20:25:22 +00:00
. withRegion ( Regions . US_WEST_1 )
2019-02-02 04:30:04 +00:00
. build ( ) ;
2024-01-16 10:41:11 -05:00
2019-02-02 04:30:04 +00:00
// create a step to enable debugging in the AWS Management Console
StepFactory stepFactory = new StepFactory ( ) ;
StepConfig enabledebugging = new StepConfig ( )
. withName ( " Enable debugging " )
. withActionOnFailure ( " TERMINATE_JOB_FLOW " )
. withHadoopJarStep ( stepFactory . newEnableDebuggingStep ( ) ) ;
Application spark = new Application ( ) . withName ( " Spark " ) ;
2024-01-16 10:41:11 -05:00
2019-02-02 04:30:04 +00:00
RunJobFlowRequest request = new RunJobFlowRequest ( )
. withName ( " Spark Cluster " )
. withReleaseLabel ( " emr-5.20.0 " )
. withSteps ( enabledebugging )
. withApplications ( spark )
. withLogUri ( " s3://path/to/my/logs/ " )
. withServiceRole ( " EMR_DefaultRole " )
. withJobFlowRole ( " EMR_EC2_DefaultRole " )
. withInstances ( new JobFlowInstancesConfig ( )
. withEc2SubnetId ( " subnet-12ab3c45 " )
. withEc2KeyName ( " myEc2Key " )
. withInstanceCount ( 3 )
. withKeepJobFlowAliveWhenNoSteps ( true )
. withMasterInstanceType ( " m4.large " )
. withSlaveInstanceType ( " m4.large " ) ) ;
RunJobFlowResult result = emr . runJobFlow ( request ) ;
System . out . println ( " The cluster ID is " + result . toString ( ) ) ;
}
}
// snippet-end:[emr.java.createcluster.spark]