
Apache Hadoop is the distributed storage and batch processing framework that started the category, comprising HDFS for storage, YARN for resource management and scheduling, and MapReduce as its batch execution engine.
Self-hosted as a cluster: HDFS (NameNode plus DataNodes) for storage, YARN (ResourceManager plus NodeManagers) for scheduling, and MapReduce or, in practice, Spark for execution. High availability needs explicit configuration. Managed derivatives such as EMR and Dataproc run the same stack with the assembly done for you.
How Apache Hadoop answers the questions Batch Compute turns on.
| How it works | |
| APIs | MapReduce in Java; Streaming for other languages |
| Data model | Key-value records over HDFS files |
| Execution model | Map and reduce phases, materialised to disk between them |
| Larger than memory | Disk-based by design: map output spills through a sort buffer and merges on disk, so a job is bounded by disk rather than memory |
| Running it | |
| Runtime | JVM |
| GPU support | YARN schedules NVIDIA GPUs and FPGAs, isolated with cgroups or nvidia-docker, but MapReduce itself has no use for them |
| What you run | A full cluster before a single job runs, HDFS NameNode and DataNodes, plus a YARN ResourceManager and NodeManagers |
| Scaling | NodeManagers are commissioned and decommissioned by hand; there is no autoscaler, and HDFS wants rebalancing afterwards |
| Failure recovery | The reason it existed: tasks retry four times, speculative execution is on by default, and HDFS keeps three replicas; the NameNode is a single point of failure until HA is configured |
| Connections | |
| Table formats | Text and SequenceFile natively; Avro, Parquet and ORC through their own InputFormats; no lakehouse format |
vs Apache Hadoop: Batch · Streaming · Scala, Python, Java
vs Apache Hadoop: Self-hosted · Free · Operational complexity: Medium · Rust
vs Apache Hadoop: Self-hosted · Managed · Hybrid · Operational complexity: Medium · Python