Hadoop 3.4.1 · 本地优先 · 开源

启动集群。 读懂系统。

Hadoop Lab 把环境准备、服务观察、MapReduce、节点故障与恢复组织成一条可重复的学习路径。先从一个容器入门;当课程需要时,再展开三节点角色。

面向课堂、自学和本地实验,而不是生产 Hadoop 平台。

学习环境地图 本地引导
统一入口 ./hadoop-lab doctor → up → lesson → status
  • 启动前检查
  • 基于证据的状态
  • 最小范围安全恢复
按学习目标选择
模式 01 · STANDALONE 初次运行

一个容器

六个 Hadoop daemon 集中在一处,以更低的资源开销开始学习。

NameNodeDataNodeResourceManager另 3 个
模式 02 · CLUSTER 3 个节点

角色分离

三个容器让服务分布和故障过程都可观察。

hadoop1hadoop2hadoop3
本地观察 HDFS :9870 YARN :8088 History :19888
同一镜像支撑两种布局;运行时角色决定启动哪些 daemon。
入口 一套生命周期 CLI 检查 · 运行 · 观察 · 恢复
学习模式 Standalone + cluster 先理解概念,再观察角色
引导实验 七个以证据为线索的实验 从首次运行到故障恢复

学习路径

从本机检查到安全恢复。

每一步都会产生可以检查的证据。同一套课程 CLI 会检查就绪状态、解释失败原因,并让重置范围保持清晰可见。

  1. 准备

    检查本机

    在不覆盖现有选择的前提下创建本地配置;启动任何服务前,先检查 Docker、内存、端口和 Compose。

    init · doctor
  2. 启动

    启动合适的模式

    拉取公开的多架构镜像,选择 standalone 或 cluster,并等待预期服务进入健康状态。

    up standalone · up cluster
  3. 运行

    产出真实结果

    提交内置 WordCount 作业或开始引导实验。输出保留在实验专属的 HDFS 路径,不会清除无关作业。

    demo wordcount · lesson start
  4. 观察

    核对证据

    对照 Docker 健康状态、预期 JVM 进程、HDFS、YARN、JobHistory 和实验检查结果,而不是把容器正在运行当作成功依据。

    status · open · logs · lesson check
  5. 恢复

    只重置你明确选择的范围

    停止服务时保留命名卷;可以重建运行时状态;只有实验需要全新环境时,才明确确认按模式删除数据。

    stop · reset · reset --data

两种模式,一个模型

从小处开始,在需要时展开角色。

Standalone 降低第一课的硬件成本,同时保留核心 HDFS 与 YARN 概念。Cluster 模式随后让进程分布、SSH 和 DataNode 故障变得可见。

阅读架构说明

按课程目标选择布局,而不是按“规格高低”

首次接触

standalone

六个 daemon 位于一个容器。资源占用更低、反馈更快,观察界面保持一致。

角色分布

cluster

三个容器。服务角色分开、支持跨节点 SSH,也能进行可恢复的节点故障实验。

HADOOP1

NameNode · DataNode

管理 HDFS 命名空间元数据,同时提供本地 block 存储。

HADOOP2

ResourceManager · NodeManager · DataNode

调度 YARN 作业、运行容器,并提供 HDFS 存储。

HADOOP3

SecondaryNameNode · JobHistory · DataNode

让 checkpoint、已完成作业和可恢复的 DataNode 故障过程变得可观察。

七个引导实验

不止照抄命令的课程。

每个实验都会说明目标、预期证据、原理解释、自动检查和最小可用重置。学生最终能够解释现象,而不只是留下一段终端记录。

为可观察而设计

一套镜像,两种布局,每层都有证据。

生命周期 CLI 驱动 Docker Compose,运行时角色设置选择 daemon,同一套检查把容器状态与真实 Hadoop 进程和学习结果连接起来。

阅读运行与恢复说明
入口

hadoop-lab CLI

把就绪检查、生命周期、实验、日志、诊断与重置整合为一个可发现的界面。

编排

Docker Compose

选择 standalone 或三节点布局,同时让配置与状态的归属保持明确。

运行时

HDFS · YARN · MapReduce

运行时角色从同一份已发布的 Hadoop 3.4.1 镜像启动预期的 daemon 集合。

证据

检查 · Web UI · 诊断

状态检查、实验检查、浏览器界面、日志和脱敏诊断包让行为可以被核对。

诊断包会排除 .env 与完整容器环境值,但分享前仍应人工检查每一个包。

诚实边界

一套不冒充生产平台的教学实验室。

明确边界能让破坏性实验更安全,也能缩小学习范围。生产 Hadoop 需要不同的架构与运维模型。

不提供 Kerberos 或身份平台

本实验室不模拟生产环境的身份认证、授权或企业身份集成。

不提供 NameNode HA

没有 active/standby 控制面、故障转移控制器,也不作生产可用性承诺。

不提供多机编排

三个容器只是在一台本地 Docker 主机上模拟角色,不是分布式生产部署。

不提供备份、容量或 SLA

备份、升级、容量规划、监控运维与运行时服务等级均不在范围内。

源代码现已开放

用四个步骤得到第一份 MapReduce 结果。

使用 Docker Desktop,或带 Compose v2 的 Docker Engine。正常流程会拉取公开的多架构镜像;只有修改镜像本身时才需要在本地构建。

快速开始 · Bash
$ 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
版本
2.0.0
运行环境
Hadoop 3.4.1
许可证
Apache-2.0