StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Databases
  4. Big Data As A Service
  5. Amazon EMR vs Apache Spark

Amazon EMR vs Apache Spark

OverviewDecisionsComparisonAlternatives

Overview

Amazon EMR
Amazon EMR
Stacks543
Followers682
Votes54
Apache Spark
Apache Spark
Stacks3.1K
Followers3.5K
Votes140
GitHub Stars42.2K
Forks28.9K

Amazon EMR vs Apache Spark: What are the differences?

Amazon EMR is a cloud-based big data platform that allows users to process and analyze large datasets using popular frameworks like Apache Spark and Apache Hadoop. Apache Spark, on the other hand, is an open-source distributed computing system that provides fast and versatile data processing capabilities, supporting a wide range of applications for big data analytics. Let's explore the key differences between the two:

  1. Data Processing Framework: Amazon EMR is a managed service that allows users to process large amounts of data using frameworks such as Apache Spark, Apache Hadoop, and more. On the other hand, Apache Spark is a distributed computing system that specifically focuses on data processing and analytics. While both Amazon EMR and Apache Spark are capable of processing big data, Apache Spark is known for its speed and in-memory computing capabilities, making it a popular choice for real-time analytics and machine learning tasks.

  2. Ease of Use: Amazon EMR provides a managed environment for running big data frameworks, making it easier for users to set up and manage their data processing workflows. It offers pre-configured environments and automated scaling, allowing users to focus on their analysis rather than infrastructure management. In contrast, Apache Spark requires users to set up their own cluster infrastructure and manage various aspects of the system, which can be more complex and time-consuming.

  3. Supported Services: Amazon EMR is an umbrella service that supports various big data frameworks, including Apache Spark. It integrates with other AWS services such as Amazon S3, Amazon Redshift, and Amazon DynamoDB, making it easier to move, transform, and analyze data across different services. On the other hand, Apache Spark can be run on various platforms and cloud providers, offering more flexibility in terms of deployment options.

  4. Ecosystem and Libraries: Amazon EMR provides a wide range of pre-installed libraries and tools that users can leverage for their data processing tasks. It offers support for popular big data tools like Apache Hive, Apache Pig, and Apache Zeppelin. In contrast, Apache Spark has its own ecosystem of libraries and tools that can be used for data processing and analytics. It offers libraries like Spark SQL, MLlib, and GraphX, enabling users to perform various data-related tasks within the Spark environment.

  5. Pricing Model: Amazon EMR follows a pay-as-you-go pricing model, where users are billed based on the resources consumed during their data processing tasks. The pricing includes costs for EC2 instances, storage, and data transfer. In contrast, Apache Spark itself is an open-source project, and the costs associated with running Spark depend on the infrastructure and resources used by the user. Users can choose to deploy Spark on their own hardware or on cloud providers, allowing for more control over the cost aspect.

  6. Scalability and Fault Tolerance: Amazon EMR offers automatic scaling capabilities, allowing users to add or remove compute nodes based on the workload. It also provides built-in fault tolerance mechanisms, ensuring that data processing jobs are not affected by node failures. Apache Spark, being a distributed computing system, also offers scalability and fault tolerance features, allowing users to handle large datasets and handle failures gracefully. However, the level of scalability and fault tolerance can vary depending on the deployment environment and infrastructure setup.

In summary, Amazon EMR is a managed service that supports various big data frameworks, including Apache Spark, offering ease of use, integration with AWS services, and a pre-installed ecosystem of libraries. Apache Spark, on the other hand, is a distributed computing system specifically designed for data processing and analytics, known for its speed, flexibility in deployment options, and its own ecosystem of libraries and tools.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Advice on Amazon EMR, Apache Spark

Nilesh
Nilesh

Technical Architect at Self Employed

Jul 8, 2020

Needs adviceonElasticsearchElasticsearchKafkaKafka

We have a Kafka topic having events of type A and type B. We need to perform an inner join on both type of events using some common field (primary-key). The joined events to be inserted in Elasticsearch.

In usual cases, type A and type B events (with same key) observed to be close upto 15 minutes. But in some cases they may be far from each other, lets say 6 hours. Sometimes event of either of the types never come.

In all cases, we should be able to find joined events instantly after they are joined and not-joined events within 15 minutes.

576k views576k
Comments

Detailed Comparison

Amazon EMR
Amazon EMR
Apache Spark
Apache Spark

It is used in a variety of applications, including log analysis, data warehousing, machine learning, financial analysis, scientific simulation, and bioinformatics.

Spark is a fast and general processing engine compatible with Hadoop data. It can run in Hadoop clusters through YARN or Spark's standalone mode, and it can process data in HDFS, HBase, Cassandra, Hive, and any Hadoop InputFormat. It is designed to perform both batch processing (similar to MapReduce) and new workloads like streaming, interactive queries, and machine learning.

Elastic- Amazon EMR enables you to quickly and easily provision as much capacity as you need and add or remove capacity at any time. Deploy multiple clusters or resize a running cluster;Low Cost- Amazon EMR is designed to reduce the cost of processing large amounts of data. Some of the features that make it low cost include low hourly pricing, Amazon EC2 Spot integration, Amazon EC2 Reserved Instance integration, elasticity, and Amazon S3 integration.;Flexible Data Stores- With Amazon EMR, you can leverage multiple data stores, including Amazon S3, the Hadoop Distributed File System (HDFS), and Amazon DynamoDB.;Hadoop Tools- EMR supports powerful and proven Hadoop tools such as Hive, Pig, and HBase.
Run programs up to 100x faster than Hadoop MapReduce in memory, or 10x faster on disk;Write applications quickly in Java, Scala or Python;Combine SQL, streaming, and complex analytics;Spark runs on Hadoop, Mesos, standalone, or in the cloud. It can access diverse data sources including HDFS, Cassandra, HBase, S3
Statistics
GitHub Stars
-
GitHub Stars
42.2K
GitHub Forks
-
GitHub Forks
28.9K
Stacks
543
Stacks
3.1K
Followers
682
Followers
3.5K
Votes
54
Votes
140
Pros & Cons
Pros
  • 15
    On demand processing power
  • 12
    Don't need to maintain Hadoop Cluster yourself
  • 7
    Hadoop Tools
  • 6
    Elastic
  • 4
    Backed by Amazon
Pros
  • 61
    Open-source
  • 48
    Fast and Flexible
  • 8
    Great for distributed SQL like applications
  • 8
    One platform for every big data problem
  • 6
    Easy to install and to use
Cons
  • 4
    Speed

What are some alternatives to Amazon EMR, Apache Spark?

Google BigQuery

Google BigQuery

Run super-fast, SQL-like queries against terabytes of data in seconds, using the processing power of Google's infrastructure. Load data with ease. Bulk load your data using Google Cloud Storage or stream it in. Easy access. Access BigQuery by using a browser tool, a command-line tool, or by making calls to the BigQuery REST API with client libraries such as Java, PHP or Python.

Amazon Redshift

Amazon Redshift

It is optimized for data sets ranging from a few hundred gigabytes to a petabyte or more and costs less than $1,000 per terabyte per year, a tenth the cost of most traditional data warehousing solutions.

Qubole

Qubole

Qubole is a cloud based service that makes big data easy for analysts and data engineers.

Presto

Presto

Distributed SQL Query Engine for Big Data

Amazon Athena

Amazon Athena

Amazon Athena is an interactive query service that makes it easy to analyze data in Amazon S3 using standard SQL. Athena is serverless, so there is no infrastructure to manage, and you pay only for the queries that you run.

Apache Flink

Apache Flink

Apache Flink is an open source system for fast and versatile data analytics in clusters. Flink supports batch and streaming analytics, in one system. Analytical programs can be written in concise and elegant APIs in Java and Scala.

lakeFS

lakeFS

It is an open-source data version control system for data lakes. It provides a “Git for data” platform enabling you to implement best practices from software engineering on your data lake, including branching and merging, CI/CD, and production-like dev/test environments.

Druid

Druid

Druid is a distributed, column-oriented, real-time analytics data store that is commonly used to power exploratory dashboards in multi-tenant environments. Druid excels as a data warehousing solution for fast aggregate queries on petabyte sized data sets. Druid supports a variety of flexible filters, exact calculations, approximate algorithms, and other useful calculations.

Altiscale

Altiscale

we run Apache Hadoop for you. We not only deploy Hadoop, we monitor, manage, fix, and update it for you. Then we take it a step further: We monitor your jobs, notify you when something’s wrong with them, and can help with tuning.

Snowflake

Snowflake

Snowflake eliminates the administration and management demands of traditional data warehouses and big data platforms. Snowflake is a true data warehouse as a service running on Amazon Web Services (AWS)—no infrastructure to manage and no knobs to turn.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase