public static void createFleet()

in javav2/example_code/emr/src/main/java/aws/example/emr/CreateEmrFleet.java [49:172]


public static void createFleet(EmrClient emr) {
        try {

        // Instance Types
        // M Family
        InstanceTypeConfig m3xLarge =  InstanceTypeConfig.builder()
                .bidPriceAsPercentageOfOnDemandPrice(100.0)
                .instanceType("m3.xlarge")
                .weightedCapacity(1)
                .build();
        InstanceTypeConfig m4xLarge =  InstanceTypeConfig.builder()
                .bidPriceAsPercentageOfOnDemandPrice(100.0)
                .instanceType("m4.xlarge")
                .weightedCapacity(1)
                .build();
        InstanceTypeConfig m5xLarge =  InstanceTypeConfig.builder()
                .bidPriceAsPercentageOfOnDemandPrice(100.0)
                .instanceType("m5.xlarge")
                .weightedCapacity(1)
                .build();
        // R Family
        InstanceTypeConfig r5xlarge =  InstanceTypeConfig.builder()
                .bidPriceAsPercentageOfOnDemandPrice(100.0)
                .instanceType("r5.xlarge")
                .weightedCapacity(2)
                .build();
        InstanceTypeConfig r4xlarge =  InstanceTypeConfig.builder()
                .bidPriceAsPercentageOfOnDemandPrice(100.0)
                .instanceType("r4.xlarge")
                .weightedCapacity(2)
                .build();
        InstanceTypeConfig r3xlarge =  InstanceTypeConfig.builder()
                .bidPriceAsPercentageOfOnDemandPrice(100.0)
                .instanceType("r3.xlarge")
                .weightedCapacity(2)
                .build();
        // C Family
        InstanceTypeConfig c32xlarge =  InstanceTypeConfig.builder()
                .bidPriceAsPercentageOfOnDemandPrice(100.0)
                .instanceType("c3.2xlarge")
                .weightedCapacity(4)
                .build();
        InstanceTypeConfig c42xlarge =  InstanceTypeConfig.builder()
                .bidPriceAsPercentageOfOnDemandPrice(100.0)
                .instanceType("c4.2xlarge")
                .weightedCapacity(4)
                .build();
        InstanceTypeConfig c52xlarge =  InstanceTypeConfig.builder()
                .bidPriceAsPercentageOfOnDemandPrice(100.0)
                .instanceType("c5.2xlarge")
                .weightedCapacity(4)
                .build();

        // Master
        InstanceFleetConfig masterFleet = InstanceFleetConfig.builder()
                .name("master-fleet")
                .instanceFleetType(InstanceFleetType.MASTER)
                .instanceTypeConfigs(Arrays.asList(
                        m3xLarge,
                        m4xLarge,
                        m5xLarge
                ))
                .targetOnDemandCapacity(1)
                .build();
        // Core
        InstanceFleetConfig coreFleet = InstanceFleetConfig.builder()
                .name("core-fleet")
                .instanceFleetType(InstanceFleetType.CORE)
                .instanceTypeConfigs(Arrays.asList(
                        m3xLarge,
                        m4xLarge,
                        r4xlarge,
                        r3xlarge,
                        c32xlarge
                ))
                .targetOnDemandCapacity(20)
                .targetSpotCapacity(10)
                .build();
        // Task
        InstanceFleetConfig taskFleet = InstanceFleetConfig.builder()
                .name("task-fleet")
                .instanceFleetType(InstanceFleetType.TASK)
                .instanceTypeConfigs(Arrays.asList(
                        m4xLarge,
                        r5xlarge,
                        r4xlarge,
                        c32xlarge,
                        c42xlarge
                ))
                .targetOnDemandCapacity(8)
                .targetSpotCapacity(40)
                .build();

        JobFlowInstancesConfig flowInstancesConfig = JobFlowInstancesConfig.builder()
                .ec2KeyName(System.getenv("keypair1"))
                .keepJobFlowAliveWhenNoSteps(true)
                .instanceFleets(Arrays.asList(
                        masterFleet,
                        coreFleet,
                        taskFleet
                ))
                .ec2SubnetId("subnet-cca64baa")
                .build();

        RunJobFlowRequest flowRequest = RunJobFlowRequest.builder()
                .name("emr-spot-example")
                .instances(flowInstancesConfig)
                .serviceRole("EMR_DefaultRole")
                .jobFlowRole("EMR_EC2_DefaultRole")
                .visibleToAllUsers(true)
                .applications(java.util.Arrays.asList(
                        Application.builder().name("Spark").build()
                ))
                .releaseLabel("emr-5.29.0")
                .build();

         RunJobFlowResponse response = emr.runJobFlow(flowRequest);
        System.out.println(response.toString());

    } catch (EmrException e) {
        System.err.println(e.awsErrorDetails().errorMessage());
        System.exit(1);
    }
  }