Amazon Elastic MapReduce
API Reference (API Version 2009-03-31)
Print this pageEmail this pageGo to the ForumsView the PDFShare this page on TwitterShare this page on FacebookBookmark this page on DeliciousSubmit this page to RedditSubmit this page to DiggDid this page help you?  Yes  No   Tell us about it...

RunJobFlow

Description

RunJobFlow creates and starts running a new job flow. The job flow will run the steps specified. Once the job flow completes, the cluster is stopped and the HDFS partition is lost. To prevent loss of data, configure the last step of the job flow to store results in Amazon S3. If the JobFlowInstancesConfig KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the job flow will transition to the WAITING state rather than shutting down once the steps have completed.

For additional protection, you can set the JobFlowInstancesConfig TerminationProtected parameter to TRUE to lock the job flow and prevent it from being terminated by API call, user intervention, or in the event of a job flow error.

A maximum of 256 steps are allowed in each job flow.

If your job flow is long-running (such as a Hive data warehouse) or complex, you may require more than 256 steps to process your data. You can bypass the 256-step limitation in various ways, including using the SSH shell to connect to the master node and submitting queries directly to the software running on the master node, such as Hive and Hadoop. For more information on how to do this, go to Add More than 256 Steps to a Job Flow in the Amazon Elastic MapReduce Developer's Guide.

For long running job flows, we recommend that you periodically store your results.

Request Parameters

For information about the common parameters that all actions use, see Common Query Parameters.

Name Description Required
AdditionalInfo

A JSON string for selecting additional features.

Type: String

Length constraints: Minimum length of 0. Maximum length of 10280.

No
AmiVersion

The version of the Amazon Machine Image (AMI) to use when launching Amazon EC2 instances in the job flow. The following values ane valid:

  • "latest" (latest AMI version; currently AMI 2.0, Hadoop 0.20.205)
  • "2.0" (AMI 2.0, Hadoop 0.20.205)
  • "1.0" (AMI 1.0, Hadoop 0.18)

If this value is not specified, the job flow uses the default of (AMI 1.0, Hadoop 0.18).

If the AMI supports multiple versions of Hadoop (for example, AMI 1.0 supports both Hadoop 0.18 and 0.20) you can use the JobFlowInstancesConfig HadoopVersion parameter to modify the version of Hadoop from the defaults shown above.

For details about the AMI versions currently supported by Amazon ElasticMapReduce, go to AMI Versions Supported in Elastic MapReduce in the Amazon Elastic MapReduce Developer's Guide.

Type: String

Length constraints: Minimum length of 0. Maximum length of 256.

No
BootstrapActions.member.N

A list of bootstrap actions that will be run before Hadoop is started on the cluster nodes.

Type: BootstrapActionConfig list

No
Instances

A specification of the number and type of Amazon EC2 instances on which to run the job flow.

Type: JobFlowInstancesConfig

Yes
LogUri

Specifies the location in Amazon S3 to write the log files of the job flow. If a value is not provided, logs are not created.

Type: String

Length constraints: Minimum length of 0. Maximum length of 10280.

No
Name

The name of the job flow.

Type: String

Length constraints: Minimum length of 0. Maximum length of 256.

Yes
Steps.member.N

A list of steps to be executed by the job flow.

Type: StepConfig list

No
SupportedProducts.member.N

A list of strings used by third-party software to tag the job flow. Currently the only valid value is "karmasphere-enterprise-utility", which tags the job flow for management by Karmasphere.

Type: String list

No

Response Elements

The following elements come wrapped in a RunJobFlowResult structure.
NameDescription
JobFlowId

An unique identifier for the job flow.

Type: String

Errors

For information about the common errors that all actions use, see Common Errors.

Error Description HTTP Status Code
InternalServerError

Indicates that an error occurred while processing the request and that the request was not completed.

500

Examples

Sample Request

https://elasticmapreduce.amazonaws.com?Action=RunJobFlow
&Name=MyJobFlowName 
&LogUri=s3n%3A%2F%2Fmybucket%2Fsubdir
&Instances.MasterInstanceType=m1.small 
&Instances.SlaveInstanceType=m1.small
&Instances.InstanceCount=4 
&Instances.Ec2KeyName=myec2keyname
&Instances.Placement.AvailabilityZone=us-east-1a
&Instances.KeepJobFlowAliveWhenNoSteps=true 
&Instances.TerminationProtected=true
&Steps.member.1.Name=MyStepName
&Steps.member.1.ActionOnFailure=CONTINUE
&Steps.member.1.HadoopJarStep.Jar=MyJarFile
&Steps.member.1.HadoopJarStep.MainClass=MyMainClass
&Steps.member.1.HadoopJarStep.Args.member.1=arg1
&Steps.member.1.HadoopJarStep.Args.member.2=arg2 
&AuthParams

Sample Response

<RunJobFlowResponse xmlns="http://elasticmapreduce.amazonaws.com/doc/2009-03-31">
   <RunJobFlowResult> 
      <JobFlowId> 
         j-3UN6WX5RRO2AG 
      </JobFlowId>
   </RunJobFlowResult> 
   <ResponseMetadata> 
      <RequestId>
         8296d8b8-ed85-11dd-9877-6fad448a8419 
      </RequestId> 
   </ResponseMetadata>
</RunJobFlowResponse>