All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceAsyncClient Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2011-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not
 * use this file except in compliance with the License. A copy of the License is
 * located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.elasticmapreduce;

import com.amazonaws.services.elasticmapreduce.model.*;
import com.amazonaws.client.AwsAsyncClientParams;
import com.amazonaws.annotation.ThreadSafe;

/**
 * Interface for accessing Amazon EMR asynchronously. Each asynchronous method
 * will return a Java Future object representing the asynchronous operation;
 * overloads which accept an {@code AsyncHandler} can be used to receive
 * notification when an asynchronous operation completes.
 * 

*

* Amazon Elastic MapReduce (Amazon EMR) is a web service that makes it easy to * process large amounts of data efficiently. Amazon EMR uses Hadoop processing * combined with several AWS products to do tasks such as web indexing, data * mining, log file analysis, machine learning, scientific simulation, and data * warehousing. *

*/ @ThreadSafe public class AmazonElasticMapReduceAsyncClient extends AmazonElasticMapReduceClient implements AmazonElasticMapReduceAsync { private static final int DEFAULT_THREAD_POOL_SIZE = 50; private final java.util.concurrent.ExecutorService executorService; /** * Constructs a new asynchronous client to invoke service methods on Amazon * EMR. A credentials provider chain will be used that searches for * credentials in this order: *
    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Credential profiles file at the default location (~/.aws/credentials) * shared by all AWS SDKs and the AWS CLI
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
*

* Asynchronous methods are delegated to a fixed-size thread pool containing * 50 threads (to match the default maximum number of concurrent connections * to the service). * * @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain * @see java.util.concurrent.Executors#newFixedThreadPool(int) */ public AmazonElasticMapReduceAsyncClient() { this(new com.amazonaws.auth.DefaultAWSCredentialsProviderChain()); } /** * Constructs a new asynchronous client to invoke service methods on Amazon * EMR. A credentials provider chain will be used that searches for * credentials in this order: *

    *
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • *
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • *
  • Credential profiles file at the default location (~/.aws/credentials) * shared by all AWS SDKs and the AWS CLI
  • *
  • Instance profile credentials delivered through the Amazon EC2 * metadata service
  • *
*

* Asynchronous methods are delegated to a fixed-size thread pool containing * a number of threads equal to the maximum number of concurrent connections * configured via {@code ClientConfiguration.getMaxConnections()}. * * @param clientConfiguration * The client configuration options controlling how this client * connects to Amazon EMR (ex: proxy settings, retry counts, etc). * * @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain * @see java.util.concurrent.Executors#newFixedThreadPool(int) */ public AmazonElasticMapReduceAsyncClient( com.amazonaws.ClientConfiguration clientConfiguration) { this(new com.amazonaws.auth.DefaultAWSCredentialsProviderChain(), clientConfiguration, java.util.concurrent.Executors .newFixedThreadPool(clientConfiguration .getMaxConnections())); } /** * Constructs a new asynchronous client to invoke service methods on Amazon * EMR using the specified AWS account credentials. *

* Asynchronous methods are delegated to a fixed-size thread pool containing * 50 threads (to match the default maximum number of concurrent connections * to the service). * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. * @see java.util.concurrent.Executors#newFixedThreadPool(int) */ public AmazonElasticMapReduceAsyncClient( com.amazonaws.auth.AWSCredentials awsCredentials) { this(awsCredentials, java.util.concurrent.Executors .newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE)); } /** * Constructs a new asynchronous client to invoke service methods on Amazon * EMR using the specified AWS account credentials and executor service. * Default client settings will be used. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. * @param executorService * The executor service by which all asynchronous requests will be * executed. */ public AmazonElasticMapReduceAsyncClient( com.amazonaws.auth.AWSCredentials awsCredentials, java.util.concurrent.ExecutorService executorService) { this(awsCredentials, configFactory.getConfig(), executorService); } /** * Constructs a new asynchronous client to invoke service methods on Amazon * EMR using the specified AWS account credentials, executor service, and * client configuration options. * * @param awsCredentials * The AWS credentials (access key ID and secret key) to use when * authenticating with AWS services. * @param clientConfiguration * Client configuration options (ex: max retry limit, proxy settings, * etc). * @param executorService * The executor service by which all asynchronous requests will be * executed. */ public AmazonElasticMapReduceAsyncClient( com.amazonaws.auth.AWSCredentials awsCredentials, com.amazonaws.ClientConfiguration clientConfiguration, java.util.concurrent.ExecutorService executorService) { super(awsCredentials, clientConfiguration); this.executorService = executorService; } /** * Constructs a new asynchronous client to invoke service methods on Amazon * EMR using the specified AWS account credentials provider. Default client * settings will be used. *

* Asynchronous methods are delegated to a fixed-size thread pool containing * 50 threads (to match the default maximum number of concurrent connections * to the service). * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @see java.util.concurrent.Executors#newFixedThreadPool(int) */ public AmazonElasticMapReduceAsyncClient( com.amazonaws.auth.AWSCredentialsProvider awsCredentialsProvider) { this(awsCredentialsProvider, java.util.concurrent.Executors .newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE)); } /** * Constructs a new asynchronous client to invoke service methods on Amazon * EMR using the provided AWS account credentials provider and client * configuration options. *

* Asynchronous methods are delegated to a fixed-size thread pool containing * a number of threads equal to the maximum number of concurrent connections * configured via {@code ClientConfiguration.getMaxConnections()}. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * Client configuration options (ex: max retry limit, proxy settings, * etc). * * @see com.amazonaws.auth.DefaultAWSCredentialsProviderChain * @see java.util.concurrent.Executors#newFixedThreadPool(int) */ public AmazonElasticMapReduceAsyncClient( com.amazonaws.auth.AWSCredentialsProvider awsCredentialsProvider, com.amazonaws.ClientConfiguration clientConfiguration) { this(awsCredentialsProvider, clientConfiguration, java.util.concurrent.Executors .newFixedThreadPool(clientConfiguration .getMaxConnections())); } /** * Constructs a new asynchronous client to invoke service methods on Amazon * EMR using the specified AWS account credentials provider and executor * service. Default client settings will be used. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param executorService * The executor service by which all asynchronous requests will be * executed. */ public AmazonElasticMapReduceAsyncClient( com.amazonaws.auth.AWSCredentialsProvider awsCredentialsProvider, java.util.concurrent.ExecutorService executorService) { this(awsCredentialsProvider, configFactory.getConfig(), executorService); } /** * Constructs a new asynchronous client to invoke service methods on Amazon * EMR using the specified AWS account credentials provider, executor * service, and client configuration options. * * @param awsCredentialsProvider * The AWS credentials provider which will provide credentials to * authenticate requests with AWS services. * @param clientConfiguration * Client configuration options (ex: max retry limit, proxy settings, * etc). * @param executorService * The executor service by which all asynchronous requests will be * executed. */ public AmazonElasticMapReduceAsyncClient( com.amazonaws.auth.AWSCredentialsProvider awsCredentialsProvider, com.amazonaws.ClientConfiguration clientConfiguration, java.util.concurrent.ExecutorService executorService) { super(awsCredentialsProvider, clientConfiguration); this.executorService = executorService; } /** * Constructs a new asynchronous client to invoke service methods on Amazon * EMR using the specified parameters. * * @param asyncClientParams * Object providing client parameters. */ AmazonElasticMapReduceAsyncClient(AwsAsyncClientParams asyncClientParams) { super(asyncClientParams); this.executorService = asyncClientParams.getExecutor(); } /** * Returns the executor service used by this client to execute async * requests. * * @return The executor service used by this client to execute async * requests. */ public java.util.concurrent.ExecutorService getExecutorService() { return executorService; } @Override public java.util.concurrent.Future addInstanceGroupsAsync( AddInstanceGroupsRequest request) { return addInstanceGroupsAsync(request, null); } @Override public java.util.concurrent.Future addInstanceGroupsAsync( final AddInstanceGroupsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public AddInstanceGroupsResult call() throws Exception { AddInstanceGroupsResult result; try { result = addInstanceGroups(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future addJobFlowStepsAsync( AddJobFlowStepsRequest request) { return addJobFlowStepsAsync(request, null); } @Override public java.util.concurrent.Future addJobFlowStepsAsync( final AddJobFlowStepsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public AddJobFlowStepsResult call() throws Exception { AddJobFlowStepsResult result; try { result = addJobFlowSteps(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future addTagsAsync( AddTagsRequest request) { return addTagsAsync(request, null); } @Override public java.util.concurrent.Future addTagsAsync( final AddTagsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public AddTagsResult call() throws Exception { AddTagsResult result; try { result = addTags(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future describeClusterAsync( DescribeClusterRequest request) { return describeClusterAsync(request, null); } @Override public java.util.concurrent.Future describeClusterAsync( final DescribeClusterRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public DescribeClusterResult call() throws Exception { DescribeClusterResult result; try { result = describeCluster(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override @Deprecated public java.util.concurrent.Future describeJobFlowsAsync( DescribeJobFlowsRequest request) { return describeJobFlowsAsync(request, null); } @Override @Deprecated public java.util.concurrent.Future describeJobFlowsAsync( final DescribeJobFlowsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public DescribeJobFlowsResult call() throws Exception { DescribeJobFlowsResult result; try { result = describeJobFlows(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } /** * Simplified method form for invoking the DescribeJobFlows operation. * * @see #describeJobFlowsAsync(DescribeJobFlowsRequest) */ @Override @Deprecated public java.util.concurrent.Future describeJobFlowsAsync() { return describeJobFlowsAsync(new DescribeJobFlowsRequest()); } /** * Simplified method form for invoking the DescribeJobFlows operation with * an AsyncHandler. * * @see #describeJobFlowsAsync(DescribeJobFlowsRequest, * com.amazonaws.handlers.AsyncHandler) */ public java.util.concurrent.Future describeJobFlowsAsync( com.amazonaws.handlers.AsyncHandler asyncHandler) { return describeJobFlowsAsync(new DescribeJobFlowsRequest(), asyncHandler); } @Override public java.util.concurrent.Future describeStepAsync( DescribeStepRequest request) { return describeStepAsync(request, null); } @Override public java.util.concurrent.Future describeStepAsync( final DescribeStepRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public DescribeStepResult call() throws Exception { DescribeStepResult result; try { result = describeStep(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future listBootstrapActionsAsync( ListBootstrapActionsRequest request) { return listBootstrapActionsAsync(request, null); } @Override public java.util.concurrent.Future listBootstrapActionsAsync( final ListBootstrapActionsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public ListBootstrapActionsResult call() throws Exception { ListBootstrapActionsResult result; try { result = listBootstrapActions(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future listClustersAsync( ListClustersRequest request) { return listClustersAsync(request, null); } @Override public java.util.concurrent.Future listClustersAsync( final ListClustersRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public ListClustersResult call() throws Exception { ListClustersResult result; try { result = listClusters(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } /** * Simplified method form for invoking the ListClusters operation. * * @see #listClustersAsync(ListClustersRequest) */ @Override public java.util.concurrent.Future listClustersAsync() { return listClustersAsync(new ListClustersRequest()); } /** * Simplified method form for invoking the ListClusters operation with an * AsyncHandler. * * @see #listClustersAsync(ListClustersRequest, * com.amazonaws.handlers.AsyncHandler) */ public java.util.concurrent.Future listClustersAsync( com.amazonaws.handlers.AsyncHandler asyncHandler) { return listClustersAsync(new ListClustersRequest(), asyncHandler); } @Override public java.util.concurrent.Future listInstanceGroupsAsync( ListInstanceGroupsRequest request) { return listInstanceGroupsAsync(request, null); } @Override public java.util.concurrent.Future listInstanceGroupsAsync( final ListInstanceGroupsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public ListInstanceGroupsResult call() throws Exception { ListInstanceGroupsResult result; try { result = listInstanceGroups(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future listInstancesAsync( ListInstancesRequest request) { return listInstancesAsync(request, null); } @Override public java.util.concurrent.Future listInstancesAsync( final ListInstancesRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public ListInstancesResult call() throws Exception { ListInstancesResult result; try { result = listInstances(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future listStepsAsync( ListStepsRequest request) { return listStepsAsync(request, null); } @Override public java.util.concurrent.Future listStepsAsync( final ListStepsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public ListStepsResult call() throws Exception { ListStepsResult result; try { result = listSteps(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future modifyInstanceGroupsAsync( ModifyInstanceGroupsRequest request) { return modifyInstanceGroupsAsync(request, null); } @Override public java.util.concurrent.Future modifyInstanceGroupsAsync( final ModifyInstanceGroupsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public ModifyInstanceGroupsResult call() throws Exception { ModifyInstanceGroupsResult result; try { result = modifyInstanceGroups(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } /** * Simplified method form for invoking the ModifyInstanceGroups operation. * * @see #modifyInstanceGroupsAsync(ModifyInstanceGroupsRequest) */ @Override public java.util.concurrent.Future modifyInstanceGroupsAsync() { return modifyInstanceGroupsAsync(new ModifyInstanceGroupsRequest()); } /** * Simplified method form for invoking the ModifyInstanceGroups operation * with an AsyncHandler. * * @see #modifyInstanceGroupsAsync(ModifyInstanceGroupsRequest, * com.amazonaws.handlers.AsyncHandler) */ public java.util.concurrent.Future modifyInstanceGroupsAsync( com.amazonaws.handlers.AsyncHandler asyncHandler) { return modifyInstanceGroupsAsync(new ModifyInstanceGroupsRequest(), asyncHandler); } @Override public java.util.concurrent.Future removeTagsAsync( RemoveTagsRequest request) { return removeTagsAsync(request, null); } @Override public java.util.concurrent.Future removeTagsAsync( final RemoveTagsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public RemoveTagsResult call() throws Exception { RemoveTagsResult result; try { result = removeTags(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future runJobFlowAsync( RunJobFlowRequest request) { return runJobFlowAsync(request, null); } @Override public java.util.concurrent.Future runJobFlowAsync( final RunJobFlowRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public RunJobFlowResult call() throws Exception { RunJobFlowResult result; try { result = runJobFlow(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future setTerminationProtectionAsync( SetTerminationProtectionRequest request) { return setTerminationProtectionAsync(request, null); } @Override public java.util.concurrent.Future setTerminationProtectionAsync( final SetTerminationProtectionRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public SetTerminationProtectionResult call() throws Exception { SetTerminationProtectionResult result; try { result = setTerminationProtection(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future setVisibleToAllUsersAsync( SetVisibleToAllUsersRequest request) { return setVisibleToAllUsersAsync(request, null); } @Override public java.util.concurrent.Future setVisibleToAllUsersAsync( final SetVisibleToAllUsersRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public SetVisibleToAllUsersResult call() throws Exception { SetVisibleToAllUsersResult result; try { result = setVisibleToAllUsers(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } @Override public java.util.concurrent.Future terminateJobFlowsAsync( TerminateJobFlowsRequest request) { return terminateJobFlowsAsync(request, null); } @Override public java.util.concurrent.Future terminateJobFlowsAsync( final TerminateJobFlowsRequest request, final com.amazonaws.handlers.AsyncHandler asyncHandler) { return executorService .submit(new java.util.concurrent.Callable() { @Override public TerminateJobFlowsResult call() throws Exception { TerminateJobFlowsResult result; try { result = terminateJobFlows(request); } catch (Exception ex) { if (asyncHandler != null) { asyncHandler.onError(ex); } throw ex; } if (asyncHandler != null) { asyncHandler.onSuccess(request, result); } return result; } }); } /** * Shuts down the client, releasing all managed resources. This includes * forcibly terminating all pending asynchronous service calls. Clients who * wish to give pending asynchronous service calls time to complete should * call {@code getExecutorService().shutdown()} followed by * {@code getExecutorService().awaitTermination()} prior to calling this * method. */ @Override public void shutdown() { super.shutdown(); executorService.shutdownNow(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy