Amazon EMR Explained: Big Data on AWS
Amazon EMR runs Spark, Hadoop, Hive and other big data frameworks on AWS. This guide explains primary, core and task nodes, why data belongs in S3 and not in the cluster's HDFS, how work is submitted as steps, transient versus long-running clusters, the Serverless and EKS options, and what decides the bill.
GloryTecks Team
Training & Placement Faculty
Last updated: 1 October 2026
Before serverless data services existed, running Spark or Hadoop meant building a cluster: provisioning machines, installing a matching set of frameworks, and keeping them healthy. Amazon EMR took that work over. AWS describes it as a managed cluster platform that simplifies running big data frameworks, such as Apache Hadoop and Apache Spark, on AWS (EMR docs: what is Amazon EMR). The name was once short for Elastic MapReduce.
EMR remains the choice when a team wants the open-source frameworks themselves, with control over versions, configuration and hardware. To use it well you need a picture of what a cluster is.
A cluster and its nodes
The central component is the cluster: a collection of EC2 instances, each called a node, each with a role (EMR docs: clusters and nodes).
| Node type | What it does | Stores HDFS data | How many |
|---|---|---|---|
| Primary | Coordinates the cluster, tracks tasks, monitors health | No | One |
| Core | Runs tasks and stores data in HDFS | Yes | At least one in a multi-node cluster |
| Task | Runs tasks only | No | Optional, any number |
The split between core and task nodes exists for a practical reason. Core nodes hold data, so losing one is costly. Task nodes hold none, so they can come and go. That makes task nodes the natural home for Spot Instances, spare EC2 capacity sold at a discount that AWS can reclaim. The architecture page explains that EMR runs the application master, the process that controls a job, only on core nodes, so a running job does not fail when Spot task nodes are taken away (EMR docs: architecture).
On top of the nodes, YARN manages resources by default, and you choose which applications to install at launch: Spark, Hive, Presto, HBase and others. Spark vs Hadoop covers HDFS, YARN and MapReduce; Apache Spark explained covers the engine most EMR clusters now run.
Where the data lives
A cluster has two file systems, and choosing the wrong one loses data.
- HDFS, on the cluster's own disks. It is fast, and the guide is blunt about its nature: HDFS is ephemeral storage that is reclaimed when you terminate a cluster.
- Amazon S3, addressed with
s3://paths. It exists independently of any cluster.
The guide's summary of normal practice: most often S3 is used to store input and output data, and intermediate results are stored in HDFS. Read from S3, write results to S3, and treat everything on the cluster as temporary. Then the cluster can be terminated the moment the work is done, and compute and storage scale separately.
Submitting work
There are three ways to give a cluster something to do:
- Steps. A step is a unit of work, such as a Spark application, submitted through the EMR API. Steps run in order.
- Direct submission. Connect to the primary node and use
spark-submitor the application's own interface. - Notebooks and interactive tools, for exploration.
Steps are the form to automate. The following command, adapted from the documentation and not run, creates a cluster, runs one PySpark script from S3, and shuts down:
aws emr create-cluster \
--name "nightly-trips" \
--release-label emr-7.14.0 \
--applications Name=Spark \
--instance-type m5.xlarge \
--instance-count 3 \
--use-default-roles \
--auto-terminate \
--steps Type=Spark,Name="Trips to curated",ActionOnFailure=TERMINATE_CLUSTER,Args=[--deploy-mode,cluster,s3://amzn-s3-demo-bucket/scripts/trips_to_curated.py]The release label fixes the versions of every framework together, which is a large part of what EMR manages for you.
Transient or long-running
The command above creates a transient cluster: it exists for one job. The alternative is a long-running cluster that waits for work.
| Transient | Long-running | |
|---|---|---|
| Lifetime | Start, run steps, terminate | Stays up, accepts steps and interactive use |
| Pays for | Only the job's duration | Idle time as well |
| Suits | Scheduled batch jobs | Interactive analysis, many small jobs, streaming |
| Risk | Start-up time added to every run | Forgotten clusters, configuration drift |
For scheduled batch work, transient clusters are usually the cheaper and cleaner design, and they are only possible because the data is in S3. Managed scaling, which adds and removes instances according to workload, reduces waste on clusters that must stay up.
Three ways to deploy
"EMR" now covers three deployment options with the same frameworks underneath:
- EMR on EC2. The classic cluster described above. Most control, most to manage.
- EMR Serverless. No cluster to configure. You create an application, submit jobs, and the service determines the resources each job needs, obtains them and releases them when the job finishes (EMR docs: EMR Serverless).
- EMR on EKS. Runs the frameworks on an Amazon EKS Kubernetes cluster, so Spark jobs share infrastructure with other containerised workloads (EMR docs: EMR on EKS).
A team starting today with batch Spark jobs and no Kubernetes platform will often find EMR Serverless the simplest entry, with EC2 clusters reserved for cases that need specific hardware, custom software on the nodes, or frameworks Serverless does not offer.
What decides the bill
EMR is billed per second with a one-minute minimum. On EC2 clusters the EMR charge is added to the price of the underlying EC2 instances and any EBS volumes (AWS: EMR pricing). The pricing page makes a point worth remembering: a 10-node cluster running for 10 hours costs the same as a 100-node cluster running for one hour. For work that parallelises well, a larger cluster for a shorter time costs the same and finishes sooner.
The practical levers:
- Terminate when idle. An idle cluster costs exactly what a busy one does.
- Spot for task nodes. Keep primary and core nodes on On-Demand capacity.
- Right-size. Run a representative job and watch utilisation before fixing the cluster size.
- Keep data in S3, in Parquet, partitioned, so jobs read less.
EMR, Glue or Athena?
| Need | Service |
|---|---|
| SQL over files in S3, nothing to run | Athena |
| Scheduled Spark ETL with minimal operations | Glue |
| Full control of Spark configuration, versions and hardware | EMR |
| Frameworks beyond Spark: Hive, HBase, Presto, Flink | EMR |
| Very large or long jobs where instance pricing and Spot matter | EMR |
| Existing Hadoop or Spark workloads being moved to AWS | EMR |
AWS's own guidance is that EMR suits custom code on big data frameworks with full control over the cluster and its software. Glue vs EMR vs Lambda for ETL goes through the trade-offs for pipelines.
Mistakes to avoid
- Storing results in HDFS on a cluster that will be terminated.
- Leaving a cluster running after a job or an experiment.
- Spot Instances for core nodes, putting HDFS data at risk.
- One permanent cluster shared by everything, so one job's configuration needs fight another's.
- Choosing EMR by habit for a job Glue or Athena would run with no cluster at all.
What does EMR stand for?
Is Amazon EMR the same as Hadoop?
What is the difference between core and task nodes?
Does data on an EMR cluster survive termination?
The Hadoop ecosystem, Apache Spark and Amazon EMR are covered in the Data Engineering course.
Sources
- What is Amazon EMR? (EMR Management Guide) β AWS Documentation
- Understanding how to create and work with Amazon EMR clusters (EMR Management Guide) β AWS Documentation
- Amazon EMR architecture and service layers (EMR Management Guide) β AWS Documentation
- What is Amazon EMR Serverless? (EMR Serverless User Guide) β AWS Documentation
- What is Amazon EMR on EKS? (EMR on EKS Development Guide) β AWS Documentation
- Amazon EMR pricing (Amazon Web Services) β Amazon Web Services
- Add a Spark step (EMR Release Guide) β AWS Documentation
GloryTecks Team
Training & Placement Faculty
The GloryTecks faculty team mentors learners across Data Science, AI and Data Engineering, with a focus on real-time projects and placement readiness in Hyderabad.
Want to master AWS?
Join GloryTecksβ expert-led Data Engineering training in Hyderabad with real-time projects and 100% placement support.
Related articles
Amazon Redshift Explained: The Cloud Data Warehouse
An introduction to Amazon Redshift, AWS's data warehouse: how a leader node, compute nodes and slices run a query in parallel, why data is stored in columns, how managed storage separates compute from storage, Serverless versus a provisioned cluster, how it differs from PostgreSQL, and what to learn first.
AWS Roadmap 2026 for Data Engineers
What to learn on AWS as a data engineer, in the order data moves through a pipeline: S3 and IAM, Glue and Athena, Glue jobs, Redshift, Step Functions, streaming and governance, with something to build at every stage and a clear test for when you are done.
Amazon S3 Explained: Storage, Classes and Best Practices
How Amazon S3 storage classes differ β minimum storage duration, minimum billable size, retrieval time β and a four-question method for putting each dataset in the right class, with lifecycle and security defaults for a data-engineering bucket.