One container
All six Hadoop daemons, one lower-cost place to start.
Hadoop 3.4.1 · local-first · open source
Hadoop Lab turns setup, service observation, MapReduce, node failure, and recovery into a repeatable learning path. Start with one container, then reveal the three-node roles when the lesson calls for them.
Built for classes, self-study, and local experiments—not as a production Hadoop platform.
doctor → up → lesson → status
All six Hadoop daemons, one lower-cost place to start.
Three containers make service placement and failure observable.
HDFS :9870
YARN :8088
History :19888
The learning path
Each step produces something you can inspect. The same CLI used in a lesson checks readiness, explains failures, and keeps reset scope visible.
Create a local configuration without overwriting existing choices, then check Docker, memory, ports, and Compose before starting anything.
init · doctor
Pull the published multi-architecture image, select standalone or cluster, and wait for the expected services to become healthy.
up standalone · up cluster
Submit the included WordCount job or start a guided lesson. Outputs stay under lesson-specific HDFS paths instead of erasing unrelated work.
demo wordcount · lesson start
Compare Docker health, expected JVM processes, HDFS, YARN, JobHistory, and lesson checks instead of treating a running container as proof.
status · open · logs · lesson check
Stop while preserving named volumes, recreate runtime state, or explicitly confirm a mode-scoped data reset when the lesson requires a clean slate.
stop · reset · reset --data
Two modes, one model
Standalone removes the hardware cost of the first lesson without hiding the core HDFS and YARN concepts. Cluster mode then makes process placement, SSH, and DataNode failure visible.
Read the architecture notesChoose the layout by lesson—not by prestige
Six daemons in one container. Lower memory, faster feedback, same observation surfaces.
Three containers. Separate service roles, cross-node SSH, and recoverable node failure.
Owns HDFS namespace metadata and also contributes local block storage.
Schedules YARN work, executes containers, and contributes HDFS storage.
Makes checkpointing, completed jobs, and a recoverable DataNode failure observable.
Seven guided labs
Every lab names an objective, expected evidence, explanation, automated check, and the narrowest useful reset. Students leave with something they can explain—not just a terminal transcript.
Separate container health, Java daemons, and browser observation surfaces.
Understand the HDFS namespace instead of confusing it with host files.
Connect input, a YARN application, reducers, and the final HDFS output.
Distinguish live scheduling in ResourceManager from completed JobHistory.
Locate six services across three nodes and explain why they are separated.
Take a DataNode offline, inspect degraded evidence, and restore it safely.
Trace a value from .env and XML templates into the effective runtime config.
A suggested classroom sequence connects the same labs into one evidence-led session.
Open the teaching guideObservable by design
The lifecycle CLI drives Docker Compose, runtime role settings select daemons, and the same checks connect container state to actual Hadoop processes and learning outcomes.
Read operations and recoveryTurns readiness, lifecycle, lessons, logs, diagnosis, and reset into one discoverable interface.
Selects the standalone or three-node layout while keeping configuration and state ownership explicit.
Runtime roles start the expected daemon set from the same published Hadoop 3.4.1 image.
Status, lesson checks, browser UIs, logs, and redacted diagnostic bundles make behavior inspectable.
Diagnostics exclude .env and full container environment values, but every bundle should still be reviewed before sharing.
The honest boundary
Keeping the boundary explicit makes destructive experiments safer and the learning surface smaller. Production Hadoop requires a different architecture and operating model.
The lab does not model production authentication, authorization, or enterprise identity integration.
There is no active/standby control plane, failover controller, or production availability claim.
Three containers model roles on one local Docker host; they are not a distributed production deployment.
Backups, upgrades, capacity planning, monitoring operations, and runtime service levels remain out of scope.
Source available now
Use Docker Desktop, or Docker Engine with Compose v2. The normal path pulls the public multi-architecture image; build locally only when changing the image itself.
$ git clone https://github.com/QianQIUlp/docker-hadoop-cluster.git
$ cd docker-hadoop-cluster
$ ./hadoop-lab init
$ ./hadoop-lab doctor
$ ./hadoop-lab up standalone
$ ./hadoop-lab demo wordcount