Apache Hadoop
The project that made big-data clusters normal: a distributed file system (HDFS), a cluster scheduler (YARN) and the MapReduce engine.
- What it is
- Query engines,File storage
- Used for
- Data lakes
- Type
- Open source
- Made by
- Apache Software Foundation
- License
- Apache 2.0
- Facts checked
- 6 October 2026
What it is
Hadoop is three systems in one Java project. HDFS stores files as large blocks, 128 MB by default, on the disks of many DataNodes and keeps three copies of each block, at least one on another rack. A NameNode holds the whole namespace and the map of where every block lives in memory; clients ask it where the blocks are, then read and write directly to the DataNodes. Files are written once and can only be appended to or truncated later. Since Hadoop 2.0 a standby NameNode, kept in sync through a quorum of JournalNodes, can take over when the active one fails. YARN runs the work: a ResourceManager hands out containers (slices of CPU and memory) on the NodeManagers that run on every machine, and each application gets its own ApplicationMaster to request containers and track its tasks. MapReduce is one such application: map tasks run where the blocks are, their output is sorted and shuffled by key to reduce tasks, and the results go back to HDFS.
Hadoop’s file system API also reaches object stores: the S3A connector for S3 and compatible stores, ABFS for Azure Data Lake Storage Gen2 and, since 3.5, Google Cloud Storage. Spark and other engines use these connectors even on clusters without HDFS or YARN. Hadoop is free under Apache 2.0; the current release is 3.5.0 (April 2026), which requires Java 17 on servers. The commercial distributions have consolidated: Cloudera and Hortonworks merged in January 2019, and Cloudera was taken private by Clayton, Dubilier & Rice and KKR in October 2021. In the cloud, Amazon EMR runs Hadoop and Spark on clusters where HDFS is temporary and data lives in S3, and Google now calls Dataproc “Managed Service for Apache Spark”.
Why teams pick it
- Proven at very large scale on commodity servers, with rack-aware replication or erasure coding to survive disk, node and rack failures
- Moves computation to the data: tasks are scheduled on the machines that hold their blocks, so big scans don’t cross the network
- HDFS gives real file system semantics, including atomic renames, which commit protocols rely on and object stores lack
- YARN lets MapReduce, Spark and other engines share one cluster with queues and capacity limits
- Its connectors (S3A, ABFS, GCS) are how Spark and many other JVM tools read and write object storage
Watch out for
- Heavy to run: NameNodes, JournalNodes, DataNodes, ResourceManagers and NodeManagers, usually with Kerberos, each needing tuning and upgrades
- Storage and compute scale together: adding disk means adding servers, and data stored three times costs 200% overhead unless you use erasure coding
- The NameNode keeps every file and block in memory, so millions of small files exhaust its heap long before the disks fill
- MapReduce writes to disk between every step, and higher-level tools have left it: Hive deprecated its MapReduce engine in Hive 2.0
- Commercial distributions have consolidated: Hortonworks merged into Cloudera, now privately held, and Google renamed its managed Hadoop and Spark service after Spark alone
Alternatives
What all query engines have in common →
Amazon AthenaAWSAWS’s serverless SQL engine for data in S3: no cluster to run, and on-demand queries cost $5 per TB scanned.
Apache CalciteOpen sourceA Java framework with everything a database needs to understand a query (SQL parser, validator, relational algebra and a rule-based, cost-based optimizer) but no storage of its own, which Hive, Flink, Druid, Dremio, Beam and many other systems embed as their SQL front end and planner.
Apache ZeppelinOpen sourceA self-hosted web notebook where each paragraph runs through an interpreter: Spark, Flink, JDBC, Python and more. Maintained, but behind Jupyter and Databricks in reach.
GizmoSQLOpen sourceA database server that wraps DuckDB (or SQLite) and serves it to many clients over Arrow Flight SQL, with TLS and authentication.
HotdataCommercialA managed SQL engine for AI agents, built in Rust on Apache DataFusion and Arrow: each agent gets short-lived “instant databases” to load data into, then runs read-only SQL, vector, full-text and geospatial queries over an HTTP API or CLI.
IbisOpen sourceA Python dataframe API that compiles to SQL, so the same code runs on DuckDB on a laptop and on BigQuery, Snowflake, PostgreSQL or more than 20 other engines.
Spice.ai OSSOpen sourceA single-binary SQL engine in Rust, built on DataFusion and Arrow, that federates queries across databases, warehouses and lakes, keeps hot datasets in a local accelerated copy, and adds search and LLM APIs on top.
VeloxOpen sourceMeta’s open-source C++ execution engine library: it takes an already-optimized query plan and runs it with vectorized operators, and it is the engine inside Presto’s C++ workers (Prestissimo) and Apache Gluten’s native Spark.How it fits with other technologies
What Apache Hadoop uses
- Apache Hadoopschedules jobs, through YARN, forApache Spark
- Apache Hadoopreads and writes buckets, via S3A, inAmazon S3
- Apache Hadoopreads and writes, via ABFS, data inAzure Blob Storage
- Apache Hadoopreads and writes, via its connector, data inGoogle Cloud Storage
- Apache Hadoopcan store files, through ofs, inApache Ozone
- Apache Hadoopcan host tables, in HDFS, forApache Paimon
What uses Apache Hadoop
- Apache Flinkruns on YARN and checkpoints to HDFS inApache Hadoop
- Apache OpenDALreads and writes HDFS files inApache Hadoop
- Apache HBasekeeps its WAL and HFiles in HDFS fromApache Hadoop
- Apache ZooKeeperdrives automatic NameNode failover inApache Hadoop
- Apache Hiveruns Tez jobs, on YARN, over HDFS inApache Hadoop
- Apache Impalareads HDFS blocks locally onApache Hadoop
- Apache Pigcompiles scripts to MapReduce jobs onApache Hadoop
- Apache Doriscan keep data in HDFS, part ofApache Hadoop
- Apache Druidcan keep segments in HDFS, part ofApache Hadoop
- StarRockscan keep tables in HDFS, part ofApache Hadoop
Load files into HDFS, run a MapReduce job on YARN, copy the result to S3 · bash
# put a log file into HDFS and see how its blocks were placed
hdfs dfs -mkdir -p /data/logs
hdfs dfs -put access-2026-10-05.log /data/logs/
hdfs fsck /data/logs/access-2026-10-05.log -files -blocks -locations
# run the bundled word-count example as a MapReduce job on YARN
yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.5.0.jar \
wordcount /data/logs /data/wordcount
hdfs dfs -cat /data/wordcount/part-r-00000 | sort -k2 -nr | head
# copy the output to S3 with a parallel DistCp job (S3A connector)
hadoop distcp /data/wordcount s3a://acme-archive/wordcount/2026-10-05/HDFS or object storage?#
In the cloud, data usually stays in a bucket and jobs reach it through Hadoop’s connectors; on Amazon EMR, HDFS is only scratch space. The trade-offs, as Hadoop’s and Spark’s own docs describe them:
| HDFS | S3 through S3A | |
|---|---|---|
| Where data lives | Disks inside the cluster’s DataNodes | A bucket run by the provider, outside any cluster |
| Metadata | One active NameNode, with the whole namespace in memory | Run by the provider; directories are emulated from key prefixes |
| Directory rename | Atomic, as Hadoop’s file system spec requires | Not atomic; time grows with the number and size of files |
| Reading data | Tasks run on the machines that hold the blocks | Every read crosses the network; seeks can need new HTTP requests |
| On Amazon EMR | Temporary: reclaimed when the cluster ends | Persistent: outlives the cluster |
| Capacity | Add servers; three replicas by default, or erasure coding (Reed-Solomon 10,4 stores 1.4x) | Grows without adding servers; billed per GB stored and per request |
- Because renames on S3 aren’t atomic, Spark and MapReduce jobs writing to S3 should use the S3A committers rather than the classic rename-based commit.
What happened to each piece#
MapReduce
still shipsKept for compatibility, but higher-level tools moved off it: Hive deprecated its MapReduce engine in Hive 2.0, and Spark keeps data in memory between steps instead of writing every stage to disk.
YARN
on-premises clustersStill schedules Spark and MapReduce on Hadoop clusters. Spark can also run on Kubernetes or its own standalone cluster manager, with no YARN at all.
HDFS
replaced in the cloudStill the file system of on-premises clusters. Apache Ozone grew out of the Hadoop project to scale past the NameNode with an object store; in the cloud, buckets hold the persistent data.
Hadoop client libraries
everywhereThe S3A, ABFS and GCS connectors and the FileSystem API are how Spark and many other JVM tools read and write object storage, even with no Hadoop cluster in sight.
Distributions
consolidatedHortonworks was founded in 2011 by Yahoo’s Hadoop engineers and merged into Cloudera in 2019. Amazon EMR and Google’s managed Spark service still run Hadoop components on demand.
See it in a real stack
No architecture uses Apache Hadoop yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2003–2026
In 2003 and 2004 Google described how it stored and processed the web on thousands of cheap machines: the Google File System, and MapReduce, a model where you write a map and a reduce function and the framework handles splitting, scheduling and failures. Nutch, an open-source web search engine, needed exactly that to crawl and index the web, so its developers built a distributed file system modelled on GFS and their own implementation of MapReduce.
In February 2006 Doug Cutting moved that code out of Nutch into a new Lucene sub-project named Hadoop. Yahoo’s grid team started using and extending it the next month, and took it from dozens of machines to thousands: by February 2008 Yahoo’s Search Webmap ran on more than 10,000 cores and fed every Yahoo web search. Hadoop became a top-level Apache project in January 2008.
Hadoop made storing and processing petabytes on commodity servers routine and grew an ecosystem of tools and companies, including Cloudera and Hortonworks. Hadoop 2 added YARN so engines other than MapReduce could share a cluster. Since then Spark and cloud object storage have taken over much of what Hadoop clusters did, and Cloudera and Hortonworks merged in 2019.
Why it’s built this way
- Large blocks, written once, copied three times
- HDFS assumed huge files read in long streams on hardware where failure is the norm. Big replicated blocks and write-once files (append and truncate only) kept the design simple and survived lost disks and nodes.
- Move the computation to the data
- Shipping a task to the machine that holds its block is cheaper than pulling terabytes across the network, so the scheduler places map tasks next to their input.
- One NameNode holding all metadata in memory
- A single master made the namespace simple and fast, but it was a single point of failure until Hadoop 2.0 added standby NameNodes, and it still caps the number of files.
- Splitting scheduling out of MapReduce (YARN)
- Hadoop 1 had one JobTracker that queued and ran all MapReduce jobs. YARN separated cluster resource management from per-job scheduling, so other frameworks could run on the same machines.
Timeline
- 2003
Google publishes the GFS paper; the MapReduce paper follows in 2004
- 2006
NDFS and MapReduce leave Nutch as Hadoop; Yahoo adopts it
- 2008
Top-level Apache project; Yahoo’s Webmap runs on 10,000+ cores
- 2011
Hadoop 1.0.0 released in December
- 2013
Hadoop 2.2.0 GA brings YARN and HDFS high availability
- 2017
Hadoop 3.0 adds HDFS erasure coding
- 2026
Hadoop 3.5.0 requires Java 17 and adds a GCS connector
- Ghemawat, Gobioff, Leung: The Google File System (SOSP 2003)
- Dean, Ghemawat: MapReduce, simplified data processing on large clusters (OSDI 2004)
- Apache JIRA: NUTCH-193, move NDFS and MapReduce to a separate project (Doug Cutting, February 2006)
- Yahoo Developer Network: Yahoo! launches world’s largest Hadoop production application (February 2008) · archived copy, original
- ASF board minutes, January 16, 2008: Establish the Apache Hadoop Project
- Hadoop wiki: Project description (built for Nutch, inspired by GFS, JobTracker)
Sources27 · facts checked 6 October 2026
- Apache Hadoop: modules (Common, HDFS, YARN, MapReduce)
- Hadoop docs: HDFS architecture (NameNode, blocks, replication, write-once, moving computation)
- Hadoop docs: HDFS high availability with the Quorum Journal Manager
- Hadoop docs: YARN architecture
- Hadoop docs: S3A connector (non-atomic directory renames, committers)
- Hadoop docs: Azure ABFS connector
- Hadoop docs: FileSystem specification (atomic rename requirement)
- Hadoop docs: HDFS commands (fsck)
- Hadoop docs: Single node setup (MapReduce examples jar)
- Hadoop docs: DistCp
- Hadoop 3.5.0 overview (Java 17, GCS FileSystem, WASB removed)
- Hadoop 3.0.0 overview (HDFS erasure coding)
- Apache Hadoop releases (3.5.0, April 2, 2026)
- Hadoop 1.0.0 release (December 2011)
- Hadoop 2.2.0 release (October 2013: YARN, HDFS HA)
- Hadoop 3.0.0 release (December 2017)
- Spark docs: Integration with cloud infrastructures (Hadoop connectors, object stores are not file systems)
- Spark docs: Cluster mode overview (standalone, YARN, Kubernetes)
- Apache JIRA: HIVE-12300, deprecate MR in Hive 2.0
- Amazon EMR docs: What is Amazon EMR
- Amazon EMR docs: Storage and file systems (HDFS is ephemeral)
- Google Cloud docs: Managed Service for Apache Spark (formerly Dataproc) overview
- Amazon S3 pricing (per GB stored, per request)
- Apache JIRA: HDFS-7240, Scaling HDFS (the proposal that became Ozone)
- Cloudera press release: Cloudera and Hortonworks complete planned merger (January 2019)
- Cloudera Form 8-K: merger with CD&R and KKR affiliates completed (October 2021)
- Hortonworks IPO prospectus (founded 2011 with Yahoo’s Hadoop engineers)