Class Cluster

    • Method Detail

      • id

        public final String id()

        The unique identifier for the cluster.

        Returns:
        The unique identifier for the cluster.
      • name

        public final String name()

        The name of the cluster. This parameter can't contain the characters <, >, $, |, or ` (backtick).

        Returns:
        The name of the cluster. This parameter can't contain the characters <, >, $, |, or ` (backtick).
      • status

        public final ClusterStatus status()

        The current status details about the cluster.

        Returns:
        The current status details about the cluster.
      • ec2InstanceAttributes

        public final Ec2InstanceAttributes ec2InstanceAttributes()

        Provides information about the Amazon EC2 instances in a cluster grouped by category. For example, key name, subnet ID, IAM instance profile, and so on.

        Returns:
        Provides information about the Amazon EC2 instances in a cluster grouped by category. For example, key name, subnet ID, IAM instance profile, and so on.
      • instanceCollectionType

        public final InstanceCollectionType instanceCollectionType()

        The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions.

        The instance group configuration of the cluster. A value of INSTANCE_GROUP indicates a uniform instance group configuration. A value of INSTANCE_FLEET indicates an instance fleets configuration.

        If the service returns an enum value that is not available in the current SDK version, instanceCollectionType will return InstanceCollectionType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from instanceCollectionTypeAsString().

        Returns:

        The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions.

        The instance group configuration of the cluster. A value of INSTANCE_GROUP indicates a uniform instance group configuration. A value of INSTANCE_FLEET indicates an instance fleets configuration.

        See Also:
        InstanceCollectionType
      • instanceCollectionTypeAsString

        public final String instanceCollectionTypeAsString()

        The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions.

        The instance group configuration of the cluster. A value of INSTANCE_GROUP indicates a uniform instance group configuration. A value of INSTANCE_FLEET indicates an instance fleets configuration.

        If the service returns an enum value that is not available in the current SDK version, instanceCollectionType will return InstanceCollectionType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from instanceCollectionTypeAsString().

        Returns:

        The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions.

        The instance group configuration of the cluster. A value of INSTANCE_GROUP indicates a uniform instance group configuration. A value of INSTANCE_FLEET indicates an instance fleets configuration.

        See Also:
        InstanceCollectionType
      • logUri

        public final String logUri()

        The path to the Amazon S3 location where logs for this cluster are stored.

        Returns:
        The path to the Amazon S3 location where logs for this cluster are stored.
      • logEncryptionKmsKeyId

        public final String logEncryptionKmsKeyId()

        The KMS key used for encrypting log files. This attribute is only available with Amazon EMR 5.30.0 and later, excluding Amazon EMR 6.0.0.

        Returns:
        The KMS key used for encrypting log files. This attribute is only available with Amazon EMR 5.30.0 and later, excluding Amazon EMR 6.0.0.
      • requestedAmiVersion

        public final String requestedAmiVersion()

        The AMI version requested for this cluster.

        Returns:
        The AMI version requested for this cluster.
      • runningAmiVersion

        public final String runningAmiVersion()

        The AMI version running on this cluster.

        Returns:
        The AMI version running on this cluster.
      • releaseLabel

        public final String releaseLabel()

        The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Release labels are in the form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0. For more information about Amazon EMR release versions and included application versions and features, see https://docs.aws.amazon. com/emr/latest/ReleaseGuide/. The release label applies only to Amazon EMR releases version 4.0 and later. Earlier versions use AmiVersion.

        Returns:
        The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Release labels are in the form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0. For more information about Amazon EMR release versions and included application versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/. The release label applies only to Amazon EMR releases version 4.0 and later. Earlier versions use AmiVersion.
      • autoTerminate

        public final Boolean autoTerminate()

        Specifies whether the cluster should terminate after completing all steps.

        Returns:
        Specifies whether the cluster should terminate after completing all steps.
      • terminationProtected

        public final Boolean terminationProtected()

        Indicates whether Amazon EMR will lock the cluster to prevent the Amazon EC2 instances from being terminated by an API call or user intervention, or in the event of a cluster error.

        Returns:
        Indicates whether Amazon EMR will lock the cluster to prevent the Amazon EC2 instances from being terminated by an API call or user intervention, or in the event of a cluster error.
      • unhealthyNodeReplacement

        public final Boolean unhealthyNodeReplacement()

        Indicates whether Amazon EMR should gracefully replace Amazon EC2 core instances that have degraded within the cluster.

        Returns:
        Indicates whether Amazon EMR should gracefully replace Amazon EC2 core instances that have degraded within the cluster.
      • visibleToAllUsers

        public final Boolean visibleToAllUsers()

        Indicates whether the cluster is visible to IAM principals in the Amazon Web Services account associated with the cluster. When true, IAM principals in the Amazon Web Services account can perform Amazon EMR cluster actions on the cluster that their IAM policies allow. When false, only the IAM principal that created the cluster and the Amazon Web Services account root user can perform Amazon EMR actions, regardless of IAM permissions policies attached to other IAM principals.

        The default value is true if a value is not provided when creating a cluster using the Amazon EMR API RunJobFlow command, the CLI create-cluster command, or the Amazon Web Services Management Console.

        Returns:
        Indicates whether the cluster is visible to IAM principals in the Amazon Web Services account associated with the cluster. When true, IAM principals in the Amazon Web Services account can perform Amazon EMR cluster actions on the cluster that their IAM policies allow. When false, only the IAM principal that created the cluster and the Amazon Web Services account root user can perform Amazon EMR actions, regardless of IAM permissions policies attached to other IAM principals.

        The default value is true if a value is not provided when creating a cluster using the Amazon EMR API RunJobFlow command, the CLI create-cluster command, or the Amazon Web Services Management Console.

      • hasApplications

        public final boolean hasApplications()
        For responses, this returns true if the service returned a value for the Applications property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
      • applications

        public final List<Application> applications()

        The applications installed on this cluster.

        Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

        This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasApplications() method.

        Returns:
        The applications installed on this cluster.
      • hasTags

        public final boolean hasTags()
        For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
      • tags

        public final List<Tag> tags()

        A list of tags associated with a cluster.

        Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

        This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasTags() method.

        Returns:
        A list of tags associated with a cluster.
      • serviceRole

        public final String serviceRole()

        The IAM role that Amazon EMR assumes in order to access Amazon Web Services resources on your behalf.

        Returns:
        The IAM role that Amazon EMR assumes in order to access Amazon Web Services resources on your behalf.
      • normalizedInstanceHours

        public final Integer normalizedInstanceHours()

        An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an Amazon EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.

        Returns:
        An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an Amazon EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.
      • masterPublicDnsName

        public final String masterPublicDnsName()

        The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.

        Returns:
        The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
      • hasConfigurations

        public final boolean hasConfigurations()
        For responses, this returns true if the service returned a value for the Configurations property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
      • configurations

        public final List<Configuration> configurations()

        Applies only to Amazon EMR releases 4.x and later. The list of configurations that are supplied to the Amazon EMR cluster.

        Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

        This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasConfigurations() method.

        Returns:
        Applies only to Amazon EMR releases 4.x and later. The list of configurations that are supplied to the Amazon EMR cluster.
      • securityConfiguration

        public final String securityConfiguration()

        The name of the security configuration applied to the cluster.

        Returns:
        The name of the security configuration applied to the cluster.
      • autoScalingRole

        public final String autoScalingRole()

        An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate Amazon EC2 instances in an instance group.

        Returns:
        An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate Amazon EC2 instances in an instance group.
      • scaleDownBehavior

        public final ScaleDownBehavior scaleDownBehavior()

        The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR indicates that Amazon EMR terminates nodes at the instance-hour boundary, regardless of when the request to terminate the instance was submitted. This option is only available with Amazon EMR 5.1.0 and later and is the default for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates that Amazon EMR adds nodes to a deny list and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance-hour boundary. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION is available only in Amazon EMR releases 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.

        If the service returns an enum value that is not available in the current SDK version, scaleDownBehavior will return ScaleDownBehavior.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from scaleDownBehaviorAsString().

        Returns:
        The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR indicates that Amazon EMR terminates nodes at the instance-hour boundary, regardless of when the request to terminate the instance was submitted. This option is only available with Amazon EMR 5.1.0 and later and is the default for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates that Amazon EMR adds nodes to a deny list and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance-hour boundary. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION is available only in Amazon EMR releases 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.
        See Also:
        ScaleDownBehavior
      • scaleDownBehaviorAsString

        public final String scaleDownBehaviorAsString()

        The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR indicates that Amazon EMR terminates nodes at the instance-hour boundary, regardless of when the request to terminate the instance was submitted. This option is only available with Amazon EMR 5.1.0 and later and is the default for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates that Amazon EMR adds nodes to a deny list and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance-hour boundary. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION is available only in Amazon EMR releases 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.

        If the service returns an enum value that is not available in the current SDK version, scaleDownBehavior will return ScaleDownBehavior.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from scaleDownBehaviorAsString().

        Returns:
        The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR indicates that Amazon EMR terminates nodes at the instance-hour boundary, regardless of when the request to terminate the instance was submitted. This option is only available with Amazon EMR 5.1.0 and later and is the default for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates that Amazon EMR adds nodes to a deny list and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance-hour boundary. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION is available only in Amazon EMR releases 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.
        See Also:
        ScaleDownBehavior
      • customAmiId

        public final String customAmiId()

        Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.

        Returns:
        Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.
      • ebsRootVolumeSize

        public final Integer ebsRootVolumeSize()

        The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 4.x and later.

        Returns:
        The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 4.x and later.
      • repoUpgradeOnBoot

        public final RepoUpgradeOnBoot repoUpgradeOnBoot()

        Applies only when CustomAmiID is used. Specifies the type of updates that the Amazon Linux AMI package repositories apply when an instance boots using the AMI.

        If the service returns an enum value that is not available in the current SDK version, repoUpgradeOnBoot will return RepoUpgradeOnBoot.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from repoUpgradeOnBootAsString().

        Returns:
        Applies only when CustomAmiID is used. Specifies the type of updates that the Amazon Linux AMI package repositories apply when an instance boots using the AMI.
        See Also:
        RepoUpgradeOnBoot
      • repoUpgradeOnBootAsString

        public final String repoUpgradeOnBootAsString()

        Applies only when CustomAmiID is used. Specifies the type of updates that the Amazon Linux AMI package repositories apply when an instance boots using the AMI.

        If the service returns an enum value that is not available in the current SDK version, repoUpgradeOnBoot will return RepoUpgradeOnBoot.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from repoUpgradeOnBootAsString().

        Returns:
        Applies only when CustomAmiID is used. Specifies the type of updates that the Amazon Linux AMI package repositories apply when an instance boots using the AMI.
        See Also:
        RepoUpgradeOnBoot
      • kerberosAttributes

        public final KerberosAttributes kerberosAttributes()

        Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see Use Kerberos Authentication in the Amazon EMR Management Guide.

        Returns:
        Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see Use Kerberos Authentication in the Amazon EMR Management Guide.
      • clusterArn

        public final String clusterArn()

        The Amazon Resource Name of the cluster.

        Returns:
        The Amazon Resource Name of the cluster.
      • outpostArn

        public final String outpostArn()

        The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.

        Returns:
        The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
      • stepConcurrencyLevel

        public final Integer stepConcurrencyLevel()

        Specifies the number of steps that can be executed concurrently.

        Returns:
        Specifies the number of steps that can be executed concurrently.
      • hasPlacementGroups

        public final boolean hasPlacementGroups()
        For responses, this returns true if the service returned a value for the PlacementGroups property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
      • placementGroups

        public final List<PlacementGroupConfig> placementGroups()

        Placement group configured for an Amazon EMR cluster.

        Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

        This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasPlacementGroups() method.

        Returns:
        Placement group configured for an Amazon EMR cluster.
      • osReleaseLabel

        public final String osReleaseLabel()

        The Amazon Linux release specified in a cluster launch RunJobFlow request. If no Amazon Linux release was specified, the default Amazon Linux release is shown in the response.

        Returns:
        The Amazon Linux release specified in a cluster launch RunJobFlow request. If no Amazon Linux release was specified, the default Amazon Linux release is shown in the response.
      • ebsRootVolumeIops

        public final Integer ebsRootVolumeIops()

        The IOPS, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 6.15.0 and later.

        Returns:
        The IOPS, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 6.15.0 and later.
      • ebsRootVolumeThroughput

        public final Integer ebsRootVolumeThroughput()

        The throughput, in MiB/s, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 6.15.0 and later.

        Returns:
        The throughput, in MiB/s, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 6.15.0 and later.
      • serializableBuilderClass

        public static Class<? extends Cluster.Builder> serializableBuilderClass()
      • hashCode

        public final int hashCode()
        Overrides:
        hashCode in class Object
      • equals

        public final boolean equals​(Object obj)
        Overrides:
        equals in class Object
      • toString

        public final String toString()
        Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
        Overrides:
        toString in class Object
      • getValueForField

        public final <T> Optional<T> getValueForField​(String fieldName,
                                                      Class<T> clazz)