com.amazonaws.services.elasticmapreduce
Class AmazonElasticMapReduceAsyncClient

java.lang.Object
  extended by com.amazonaws.AmazonWebServiceClient
      extended by com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClient
          extended by com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceAsyncClient
All Implemented Interfaces:
AmazonElasticMapReduce, AmazonElasticMapReduceAsync

public class AmazonElasticMapReduceAsyncClient
extends AmazonElasticMapReduceClient
implements AmazonElasticMapReduceAsync

Client for accessing AmazonElasticMapReduce. All calls made using this client are non-blocking and will immediately return a Java Future. Callers must use the Future object to determine when the service call has actually completed.

Elastic MapReduce is a web service that makes it easy to process vast amounts of data using Amazon Simple Storage Service (Amazon S3), where data is stored, and a cluster of Amazon Elastic Compute Cloud (EC2) instances, where that data is processed. Elastic MapReduce uses Hadoop processing to do such things as web indexing, data mining, log file analysis, machine learning, scientific simulation, and bioinformatics research.


Constructor Summary
AmazonElasticMapReduceAsyncClient(AWSCredentials awsCredentials)
          Constructs a new asynchronous client to invoke service methods on AmazonElasticMapReduce using the specified AWS account credentials.
AmazonElasticMapReduceAsyncClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration, ExecutorService executorService)
          Constructs a new asynchronous client to invoke service methods on AmazonElasticMapReduce using the specified AWS account credentials, executor service, and client configuration options.
AmazonElasticMapReduceAsyncClient(AWSCredentials awsCredentials, ExecutorService executorService)
          Constructs a new asynchronous client to invoke service methods on AmazonElasticMapReduce using the specified AWS account credentials and executor service.
 
Method Summary
 Future<Void> addJobFlowStepsAsync(AddJobFlowStepsRequest addJobFlowStepsRequest)
           Adds new steps to a job flow already loaded on an EC2 cluster.
 Future<DescribeJobFlowsResult> describeJobFlowsAsync(DescribeJobFlowsRequest describeJobFlowsRequest)
           Returns extensive details about specified job flows.
 ExecutorService getExecutorService()
          Returns the executor service used by this async client to execute requests.
 Future<RunJobFlowResult> runJobFlowAsync(RunJobFlowRequest runJobFlowRequest)
           Creates a new job flow and EC2 cluster, and then executes the job flow steps on the cluster.
 Future<Void> terminateJobFlowsAsync(TerminateJobFlowsRequest terminateJobFlowsRequest)
           Terminates job flow processing, uploads data from EC2 to Amazon S3, and terminates the EC2 cluster.
 
Methods inherited from class com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClient
addJobFlowSteps, describeJobFlows, describeJobFlows, runJobFlow, terminateJobFlows
 
Methods inherited from class com.amazonaws.AmazonWebServiceClient
setEndpoint
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce
addJobFlowSteps, describeJobFlows, describeJobFlows, runJobFlow, setEndpoint, terminateJobFlows
 

Constructor Detail

AmazonElasticMapReduceAsyncClient

public AmazonElasticMapReduceAsyncClient(AWSCredentials awsCredentials)
Constructs a new asynchronous client to invoke service methods on AmazonElasticMapReduce using the specified AWS account credentials. Default client settings will be used, and a default cached thread pool will be created for executing the asynchronous tasks.

All calls made using this new client object are non-blocking, and will immediately return a Java Future object that the caller can later check to see if the service call has actually completed.

Parameters:
awsCredentials - The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.

AmazonElasticMapReduceAsyncClient

public AmazonElasticMapReduceAsyncClient(AWSCredentials awsCredentials,
                                         ExecutorService executorService)
Constructs a new asynchronous client to invoke service methods on AmazonElasticMapReduce using the specified AWS account credentials and executor service. Default client settings will be used.

All calls made using this new client object are non-blocking, and will immediately return a Java Future object that the caller can later check to see if the service call has actually completed.

Parameters:
awsCredentials - The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
executorService - The executor service by which all asynchronous requests will be executed.

AmazonElasticMapReduceAsyncClient

public AmazonElasticMapReduceAsyncClient(AWSCredentials awsCredentials,
                                         ClientConfiguration clientConfiguration,
                                         ExecutorService executorService)
Constructs a new asynchronous client to invoke service methods on AmazonElasticMapReduce using the specified AWS account credentials, executor service, and client configuration options.

All calls made using this new client object are non-blocking, and will immediately return a Java Future object that the caller can later check to see if the service call has actually completed.

Parameters:
awsCredentials - The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
clientConfiguration - Client configuration options (ex: max retry limit, proxy settings, etc).
executorService - The executor service by which all asynchronous requests will be executed.
Method Detail

getExecutorService

public ExecutorService getExecutorService()
Returns the executor service used by this async client to execute requests.

Returns:
The executor service used by this async client to execute requests.

addJobFlowStepsAsync

public Future<Void> addJobFlowStepsAsync(AddJobFlowStepsRequest addJobFlowStepsRequest)
                                  throws AmazonServiceException,
                                         AmazonClientException

Adds new steps to a job flow already loaded on an EC2 cluster. Each step applies an algorithm to the data set, for the first step, or to the data returned by the previous step in the job flow. If the job flow isn't executing any other steps, execution begins from the first added step. The maximum number of steps in a job flow is 256.

Specified by:
addJobFlowStepsAsync in interface AmazonElasticMapReduceAsync
Parameters:
addJobFlowStepsRequest - Container for the necessary parameters to execute the AddJobFlowSteps operation on AmazonElasticMapReduce.
Returns:
A Java Future object containing the response from the AddJobFlowSteps service method, as returned by AmazonElasticMapReduce.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonElasticMapReduce indicating either a problem with the data in the request, or a server side issue.

terminateJobFlowsAsync

public Future<Void> terminateJobFlowsAsync(TerminateJobFlowsRequest terminateJobFlowsRequest)
                                    throws AmazonServiceException,
                                           AmazonClientException

Terminates job flow processing, uploads data from EC2 to Amazon S3, and terminates the EC2 cluster. Use this action to terminate a single job flow or list of job flows. Job flows that complete successfully terminate automatically unless the job flow's KeepJobFlowAliveWhenNoSteps field is set to true when provided to the RunJobFlows operation.

Specified by:
terminateJobFlowsAsync in interface AmazonElasticMapReduceAsync
Parameters:
terminateJobFlowsRequest - Container for the necessary parameters to execute the TerminateJobFlows operation on AmazonElasticMapReduce.
Returns:
A Java Future object containing the response from the TerminateJobFlows service method, as returned by AmazonElasticMapReduce.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonElasticMapReduce indicating either a problem with the data in the request, or a server side issue.

describeJobFlowsAsync

public Future<DescribeJobFlowsResult> describeJobFlowsAsync(DescribeJobFlowsRequest describeJobFlowsRequest)
                                                     throws AmazonServiceException,
                                                            AmazonClientException

Returns extensive details about specified job flows. The client specifies job flows by their ID, creation date, or state. Elastic MapReduce returns descriptions of job flows that are up to two months old. Specifying a date older than two months returns an error. The maximum number of job flow descriptions that are returned is 512.

Each input parameter acts as a filter so that Elastic MapReduce returns information about a more precise set of job flows with each parameter that is used in the request. If parameters are not included in a request, Elastic MapReduce returns descriptions of all job flows that have:

Specified by:
describeJobFlowsAsync in interface AmazonElasticMapReduceAsync
Parameters:
describeJobFlowsRequest - Container for the necessary parameters to execute the DescribeJobFlows operation on AmazonElasticMapReduce.
Returns:
A Java Future object containing the response from the DescribeJobFlows service method, as returned by AmazonElasticMapReduce.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonElasticMapReduce indicating either a problem with the data in the request, or a server side issue.

runJobFlowAsync

public Future<RunJobFlowResult> runJobFlowAsync(RunJobFlowRequest runJobFlowRequest)
                                         throws AmazonServiceException,
                                                AmazonClientException

Creates a new job flow and EC2 cluster, and then executes the job flow steps on the cluster. When the job flow finishes, depending on the specified parameter values, RunJobFlow terminates the EC2 cluster and uploads results to a specified Amazon S3 bucket.

NOTE: When running a new job flow, the following restrictions apply: The maximum lifetime of a job flow is 2 weeks. The maximum number of steps allowed in a job flow is 256.

Specified by:
runJobFlowAsync in interface AmazonElasticMapReduceAsync
Parameters:
runJobFlowRequest - Container for the necessary parameters to execute the RunJobFlow operation on AmazonElasticMapReduce.
Returns:
A Java Future object containing the response from the RunJobFlow service method, as returned by AmazonElasticMapReduce.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonElasticMapReduce indicating either a problem with the data in the request, or a server side issue.


Copyright © 2010 Amazon Web Services, Inc. All Rights Reserved.