Skip to content
Get Started for Free

Elastic MapReduce (EMR)

Amazon Elastic MapReduce (EMR) is a fully managed big data processing service that allows developers to effortlessly create, deploy, and manage big data applications. EMR supports various big data processing frameworks, including Hadoop MapReduce, Apache Spark, Apache Hive, and Apache Pig. Developers can leverage these frameworks and their rich ecosystem of tools and libraries to perform complex data transformations, machine learning tasks, and real-time data processing.

LocalStack supports EMR and allows developers to run data analytics workloads locally. EMR utilizes various tools in the Hadoop and Spark ecosystem, and your EMR instance is automatically configured to connect seamlessly to LocalStack’s S3 API. LocalStack also supports EMR Serverless to create applications and job runs, to run your Spark/PySpark jobs locally.

The supported APIs are available on the API coverage section for EMR and EMR Serverless, which provides information on the extent of EMR’s integration with LocalStack.

This guide is designed for users new to EMR and assumes basic knowledge of the AWS CLI and our lstk aws command.

Start your LocalStack container using your preferred method. We will create a virtual EMR cluster using the AWS CLI. To create an EMR cluster, run the following command:

Terminal window
lstk aws emr create-cluster \
--release-label emr-5.9.0 \
--instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large

You will see a response similar to the following:

Output
{
"ClusterId": "j-A2KF3EKLAOWRI"
}

You can also specify startup commands using the --steps=... command line argument to the CreateCluster API.

The following code snippets and sample applications provide practical examples of how to use EMR in LocalStack for various use cases:

33 of 65 operations implemented

Available from the Ultimate plan. Licensing details

Find an API

Search the full operation list, then sort the table to compare current support.

Loading operations…

Verified on Kubernetes
Loading operations…
Complete static API list All 65 operations and their current support status
OperationStatus
AddInstanceFleetImplemented
AddInstanceGroupsImplemented
AddJobFlowStepsImplemented
AddTagsImplemented
CancelStepsNot implemented
CreatePersistentAppUINot implemented
CreateSecurityConfigurationImplemented
CreateStudioNot implemented
CreateStudioSessionMappingNot implemented
DeleteSecurityConfigurationImplemented
DeleteStudioNot implemented
DeleteStudioSessionMappingNot implemented
DescribeClusterImplemented
DescribeJobFlowsImplemented
DescribeNotebookExecutionNot implemented
DescribePersistentAppUINot implemented
DescribeReleaseLabelNot implemented
DescribeSecurityConfigurationImplemented
DescribeStepImplemented
DescribeStudioNot implemented
GetAutoTerminationPolicyImplemented
GetBlockPublicAccessConfigurationImplemented
GetClusterSessionCredentialsNot implemented
GetManagedScalingPolicyNot implemented
GetOnClusterAppUIPresignedURLNot implemented
GetPersistentAppUIPresignedURLNot implemented
GetSessionNot implemented
GetSessionEndpointNot implemented
GetStudioSessionMappingNot implemented
ListBootstrapActionsImplemented
ListClustersImplemented
ListInstanceFleetsImplemented
ListInstanceGroupsImplemented
ListInstancesImplemented
ListNotebookExecutionsNot implemented
ListReleaseLabelsImplemented
ListSecurityConfigurationsNot implemented
ListSessionsNot implemented
ListStepsImplemented
ListStudioSessionMappingsNot implemented
ListStudiosNot implemented
ListSupportedInstanceTypesImplemented
ModifyClusterImplemented
ModifyInstanceFleetImplemented
ModifyInstanceGroupsImplemented
PutAutoScalingPolicyImplemented
PutAutoTerminationPolicyImplemented
PutBlockPublicAccessConfigurationImplemented
PutManagedScalingPolicyNot implemented
RemoveAutoScalingPolicyImplemented
RemoveAutoTerminationPolicyImplemented
RemoveManagedScalingPolicyNot implemented
RemoveTagsImplemented
RunJobFlowImplemented
SetKeepJobFlowAliveWhenNoStepsNot implemented
SetTerminationProtectionImplemented
SetUnhealthyNodeReplacementNot implemented
SetVisibleToAllUsersImplemented
StartNotebookExecutionNot implemented
StartSessionNot implemented
StopNotebookExecutionNot implemented
TerminateJobFlowsImplemented
TerminateSessionNot implemented
UpdateStudioNot implemented
UpdateStudioSessionMappingNot implemented

14 of 22 operations implemented

Available from the Ultimate plan. Licensing details

Find an API

Search the full operation list, then sort the table to compare current support.

Loading operations…

Verified on Kubernetes
Loading operations…
Complete static API list All 22 operations and their current support status
OperationStatus
CancelJobRunImplemented
CreateApplicationImplemented
DeleteApplicationImplemented
GetApplicationImplemented
GetDashboardForJobRunNot implemented
GetJobRunImplemented
GetResourceDashboardNot implemented
GetSessionNot implemented
GetSessionEndpointNot implemented
ListApplicationsImplemented
ListJobRunAttemptsNot implemented
ListJobRunsImplemented
ListSessionsNot implemented
ListTagsForResourceImplemented
StartApplicationImplemented
StartJobRunImplemented
StartSessionNot implemented
StopApplicationImplemented
TagResourceImplemented
TerminateSessionNot implemented
UntagResourceImplemented
UpdateApplicationImplemented
Was this page helpful?