Class JobFlowInstancesConfig

  • All Implemented Interfaces:
    Serializable, Cloneable

    public class JobFlowInstancesConfig
    extends Object
    implements Serializable, Cloneable

    A description of the Amazon EC2 instance running the job flow. A valid JobFlowInstancesConfig must contain at least InstanceGroups, which is the recommended configuration. However, a valid alternative is to have MasterInstanceType, SlaveInstanceType, and InstanceCount (all three must be present).

    See Also:
    Serialized Form
    • Constructor Detail

      • JobFlowInstancesConfig

        public JobFlowInstancesConfig()
    • Method Detail

      • setMasterInstanceType

        public void setMasterInstanceType​(String masterInstanceType)

        The EC2 instance type of the master node.

        Parameters:
        masterInstanceType - The EC2 instance type of the master node.
      • getMasterInstanceType

        public String getMasterInstanceType()

        The EC2 instance type of the master node.

        Returns:
        The EC2 instance type of the master node.
      • withMasterInstanceType

        public JobFlowInstancesConfig withMasterInstanceType​(String masterInstanceType)

        The EC2 instance type of the master node.

        Parameters:
        masterInstanceType - The EC2 instance type of the master node.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • setSlaveInstanceType

        public void setSlaveInstanceType​(String slaveInstanceType)

        The EC2 instance type of the slave nodes.

        Parameters:
        slaveInstanceType - The EC2 instance type of the slave nodes.
      • getSlaveInstanceType

        public String getSlaveInstanceType()

        The EC2 instance type of the slave nodes.

        Returns:
        The EC2 instance type of the slave nodes.
      • withSlaveInstanceType

        public JobFlowInstancesConfig withSlaveInstanceType​(String slaveInstanceType)

        The EC2 instance type of the slave nodes.

        Parameters:
        slaveInstanceType - The EC2 instance type of the slave nodes.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • setInstanceCount

        public void setInstanceCount​(Integer instanceCount)

        The number of Amazon EC2 instances used to execute the job flow.

        Parameters:
        instanceCount - The number of Amazon EC2 instances used to execute the job flow.
      • getInstanceCount

        public Integer getInstanceCount()

        The number of Amazon EC2 instances used to execute the job flow.

        Returns:
        The number of Amazon EC2 instances used to execute the job flow.
      • withInstanceCount

        public JobFlowInstancesConfig withInstanceCount​(Integer instanceCount)

        The number of Amazon EC2 instances used to execute the job flow.

        Parameters:
        instanceCount - The number of Amazon EC2 instances used to execute the job flow.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • getInstanceGroups

        public List<InstanceGroupConfig> getInstanceGroups()

        Configuration for the job flow's instance groups.

        Returns:
        Configuration for the job flow's instance groups.
      • setInstanceGroups

        public void setInstanceGroups​(Collection<InstanceGroupConfig> instanceGroups)

        Configuration for the job flow's instance groups.

        Parameters:
        instanceGroups - Configuration for the job flow's instance groups.
      • withInstanceGroups

        public JobFlowInstancesConfig withInstanceGroups​(Collection<InstanceGroupConfig> instanceGroups)

        Configuration for the job flow's instance groups.

        Parameters:
        instanceGroups - Configuration for the job flow's instance groups.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • setEc2KeyName

        public void setEc2KeyName​(String ec2KeyName)

        The name of the Amazon EC2 key pair that can be used to ssh to the master node as the user called "hadoop."

        Parameters:
        ec2KeyName - The name of the Amazon EC2 key pair that can be used to ssh to the master node as the user called "hadoop."
      • getEc2KeyName

        public String getEc2KeyName()

        The name of the Amazon EC2 key pair that can be used to ssh to the master node as the user called "hadoop."

        Returns:
        The name of the Amazon EC2 key pair that can be used to ssh to the master node as the user called "hadoop."
      • withEc2KeyName

        public JobFlowInstancesConfig withEc2KeyName​(String ec2KeyName)

        The name of the Amazon EC2 key pair that can be used to ssh to the master node as the user called "hadoop."

        Parameters:
        ec2KeyName - The name of the Amazon EC2 key pair that can be used to ssh to the master node as the user called "hadoop."
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • setPlacement

        public void setPlacement​(PlacementType placement)

        The Availability Zone the job flow will run in.

        Parameters:
        placement - The Availability Zone the job flow will run in.
      • getPlacement

        public PlacementType getPlacement()

        The Availability Zone the job flow will run in.

        Returns:
        The Availability Zone the job flow will run in.
      • withPlacement

        public JobFlowInstancesConfig withPlacement​(PlacementType placement)

        The Availability Zone the job flow will run in.

        Parameters:
        placement - The Availability Zone the job flow will run in.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • setKeepJobFlowAliveWhenNoSteps

        public void setKeepJobFlowAliveWhenNoSteps​(Boolean keepJobFlowAliveWhenNoSteps)

        Specifies whether the job flow should be kept alive after completing all steps.

        Parameters:
        keepJobFlowAliveWhenNoSteps - Specifies whether the job flow should be kept alive after completing all steps.
      • getKeepJobFlowAliveWhenNoSteps

        public Boolean getKeepJobFlowAliveWhenNoSteps()

        Specifies whether the job flow should be kept alive after completing all steps.

        Returns:
        Specifies whether the job flow should be kept alive after completing all steps.
      • withKeepJobFlowAliveWhenNoSteps

        public JobFlowInstancesConfig withKeepJobFlowAliveWhenNoSteps​(Boolean keepJobFlowAliveWhenNoSteps)

        Specifies whether the job flow should be kept alive after completing all steps.

        Parameters:
        keepJobFlowAliveWhenNoSteps - Specifies whether the job flow should be kept alive after completing all steps.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • isKeepJobFlowAliveWhenNoSteps

        public Boolean isKeepJobFlowAliveWhenNoSteps()

        Specifies whether the job flow should be kept alive after completing all steps.

        Returns:
        Specifies whether the job flow should be kept alive after completing all steps.
      • setTerminationProtected

        public void setTerminationProtected​(Boolean terminationProtected)

        Specifies whether to lock the job flow to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job flow error.

        Parameters:
        terminationProtected - Specifies whether to lock the job flow to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job flow error.
      • getTerminationProtected

        public Boolean getTerminationProtected()

        Specifies whether to lock the job flow to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job flow error.

        Returns:
        Specifies whether to lock the job flow to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job flow error.
      • withTerminationProtected

        public JobFlowInstancesConfig withTerminationProtected​(Boolean terminationProtected)

        Specifies whether to lock the job flow to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job flow error.

        Parameters:
        terminationProtected - Specifies whether to lock the job flow to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job flow error.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • isTerminationProtected

        public Boolean isTerminationProtected()

        Specifies whether to lock the job flow to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job flow error.

        Returns:
        Specifies whether to lock the job flow to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job flow error.
      • setHadoopVersion

        public void setHadoopVersion​(String hadoopVersion)

        The Hadoop version for the job flow. Valid inputs are "0.18" (deprecated), "0.20" (deprecated), "0.20.205" (deprecated), "1.0.3", "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is used, unless the AmiVersion parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.

        Parameters:
        hadoopVersion - The Hadoop version for the job flow. Valid inputs are "0.18" (deprecated), "0.20" (deprecated), "0.20.205" (deprecated), "1.0.3", "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is used, unless the AmiVersion parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.
      • getHadoopVersion

        public String getHadoopVersion()

        The Hadoop version for the job flow. Valid inputs are "0.18" (deprecated), "0.20" (deprecated), "0.20.205" (deprecated), "1.0.3", "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is used, unless the AmiVersion parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.

        Returns:
        The Hadoop version for the job flow. Valid inputs are "0.18" (deprecated), "0.20" (deprecated), "0.20.205" (deprecated), "1.0.3", "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is used, unless the AmiVersion parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.
      • withHadoopVersion

        public JobFlowInstancesConfig withHadoopVersion​(String hadoopVersion)

        The Hadoop version for the job flow. Valid inputs are "0.18" (deprecated), "0.20" (deprecated), "0.20.205" (deprecated), "1.0.3", "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is used, unless the AmiVersion parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.

        Parameters:
        hadoopVersion - The Hadoop version for the job flow. Valid inputs are "0.18" (deprecated), "0.20" (deprecated), "0.20.205" (deprecated), "1.0.3", "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is used, unless the AmiVersion parameter is set in the RunJobFlow call, in which case the default version of Hadoop for that AMI version is used.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • setEc2SubnetId

        public void setEc2SubnetId​(String ec2SubnetId)

        To launch the job flow in Amazon Virtual Private Cloud (Amazon VPC), set this parameter to the identifier of the Amazon VPC subnet where you want the job flow to launch. If you do not specify this value, the job flow is launched in the normal Amazon Web Services cloud, outside of an Amazon VPC.

        Amazon VPC currently does not support cluster compute quadruple extra large (cc1.4xlarge) instances. Thus you cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in a Amazon VPC.

        Parameters:
        ec2SubnetId - To launch the job flow in Amazon Virtual Private Cloud (Amazon VPC), set this parameter to the identifier of the Amazon VPC subnet where you want the job flow to launch. If you do not specify this value, the job flow is launched in the normal Amazon Web Services cloud, outside of an Amazon VPC.

        Amazon VPC currently does not support cluster compute quadruple extra large (cc1.4xlarge) instances. Thus you cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in a Amazon VPC.

      • getEc2SubnetId

        public String getEc2SubnetId()

        To launch the job flow in Amazon Virtual Private Cloud (Amazon VPC), set this parameter to the identifier of the Amazon VPC subnet where you want the job flow to launch. If you do not specify this value, the job flow is launched in the normal Amazon Web Services cloud, outside of an Amazon VPC.

        Amazon VPC currently does not support cluster compute quadruple extra large (cc1.4xlarge) instances. Thus you cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in a Amazon VPC.

        Returns:
        To launch the job flow in Amazon Virtual Private Cloud (Amazon VPC), set this parameter to the identifier of the Amazon VPC subnet where you want the job flow to launch. If you do not specify this value, the job flow is launched in the normal Amazon Web Services cloud, outside of an Amazon VPC.

        Amazon VPC currently does not support cluster compute quadruple extra large (cc1.4xlarge) instances. Thus you cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in a Amazon VPC.

      • withEc2SubnetId

        public JobFlowInstancesConfig withEc2SubnetId​(String ec2SubnetId)

        To launch the job flow in Amazon Virtual Private Cloud (Amazon VPC), set this parameter to the identifier of the Amazon VPC subnet where you want the job flow to launch. If you do not specify this value, the job flow is launched in the normal Amazon Web Services cloud, outside of an Amazon VPC.

        Amazon VPC currently does not support cluster compute quadruple extra large (cc1.4xlarge) instances. Thus you cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in a Amazon VPC.

        Parameters:
        ec2SubnetId - To launch the job flow in Amazon Virtual Private Cloud (Amazon VPC), set this parameter to the identifier of the Amazon VPC subnet where you want the job flow to launch. If you do not specify this value, the job flow is launched in the normal Amazon Web Services cloud, outside of an Amazon VPC.

        Amazon VPC currently does not support cluster compute quadruple extra large (cc1.4xlarge) instances. Thus you cannot specify the cc1.4xlarge instance type for nodes of a job flow launched in a Amazon VPC.

        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • setEmrManagedMasterSecurityGroup

        public void setEmrManagedMasterSecurityGroup​(String emrManagedMasterSecurityGroup)

        The identifier of the Amazon EC2 security group for the master node.

        Parameters:
        emrManagedMasterSecurityGroup - The identifier of the Amazon EC2 security group for the master node.
      • getEmrManagedMasterSecurityGroup

        public String getEmrManagedMasterSecurityGroup()

        The identifier of the Amazon EC2 security group for the master node.

        Returns:
        The identifier of the Amazon EC2 security group for the master node.
      • withEmrManagedMasterSecurityGroup

        public JobFlowInstancesConfig withEmrManagedMasterSecurityGroup​(String emrManagedMasterSecurityGroup)

        The identifier of the Amazon EC2 security group for the master node.

        Parameters:
        emrManagedMasterSecurityGroup - The identifier of the Amazon EC2 security group for the master node.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • setEmrManagedSlaveSecurityGroup

        public void setEmrManagedSlaveSecurityGroup​(String emrManagedSlaveSecurityGroup)

        The identifier of the Amazon EC2 security group for the slave nodes.

        Parameters:
        emrManagedSlaveSecurityGroup - The identifier of the Amazon EC2 security group for the slave nodes.
      • getEmrManagedSlaveSecurityGroup

        public String getEmrManagedSlaveSecurityGroup()

        The identifier of the Amazon EC2 security group for the slave nodes.

        Returns:
        The identifier of the Amazon EC2 security group for the slave nodes.
      • withEmrManagedSlaveSecurityGroup

        public JobFlowInstancesConfig withEmrManagedSlaveSecurityGroup​(String emrManagedSlaveSecurityGroup)

        The identifier of the Amazon EC2 security group for the slave nodes.

        Parameters:
        emrManagedSlaveSecurityGroup - The identifier of the Amazon EC2 security group for the slave nodes.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • setServiceAccessSecurityGroup

        public void setServiceAccessSecurityGroup​(String serviceAccessSecurityGroup)

        The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.

        Parameters:
        serviceAccessSecurityGroup - The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.
      • getServiceAccessSecurityGroup

        public String getServiceAccessSecurityGroup()

        The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.

        Returns:
        The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.
      • withServiceAccessSecurityGroup

        public JobFlowInstancesConfig withServiceAccessSecurityGroup​(String serviceAccessSecurityGroup)

        The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.

        Parameters:
        serviceAccessSecurityGroup - The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • getAdditionalMasterSecurityGroups

        public List<String> getAdditionalMasterSecurityGroups()

        A list of additional Amazon EC2 security group IDs for the master node.

        Returns:
        A list of additional Amazon EC2 security group IDs for the master node.
      • setAdditionalMasterSecurityGroups

        public void setAdditionalMasterSecurityGroups​(Collection<String> additionalMasterSecurityGroups)

        A list of additional Amazon EC2 security group IDs for the master node.

        Parameters:
        additionalMasterSecurityGroups - A list of additional Amazon EC2 security group IDs for the master node.
      • withAdditionalMasterSecurityGroups

        public JobFlowInstancesConfig withAdditionalMasterSecurityGroups​(Collection<String> additionalMasterSecurityGroups)

        A list of additional Amazon EC2 security group IDs for the master node.

        Parameters:
        additionalMasterSecurityGroups - A list of additional Amazon EC2 security group IDs for the master node.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • getAdditionalSlaveSecurityGroups

        public List<String> getAdditionalSlaveSecurityGroups()

        A list of additional Amazon EC2 security group IDs for the slave nodes.

        Returns:
        A list of additional Amazon EC2 security group IDs for the slave nodes.
      • setAdditionalSlaveSecurityGroups

        public void setAdditionalSlaveSecurityGroups​(Collection<String> additionalSlaveSecurityGroups)

        A list of additional Amazon EC2 security group IDs for the slave nodes.

        Parameters:
        additionalSlaveSecurityGroups - A list of additional Amazon EC2 security group IDs for the slave nodes.
      • withAdditionalSlaveSecurityGroups

        public JobFlowInstancesConfig withAdditionalSlaveSecurityGroups​(Collection<String> additionalSlaveSecurityGroups)

        A list of additional Amazon EC2 security group IDs for the slave nodes.

        Parameters:
        additionalSlaveSecurityGroups - A list of additional Amazon EC2 security group IDs for the slave nodes.
        Returns:
        Returns a reference to this object so that method calls can be chained together.
      • toString

        public String toString()
        Returns a string representation of this object; useful for testing and debugging.
        Overrides:
        toString in class Object
        Returns:
        A string representation of this object.
        See Also:
        Object.toString()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object