如果只有半天时间备课,先拿这 8 样
- 数据结构:浙大陈越/何钦铭 MOOC(PPT+视频+实验指导全都有)+ PTA 平台直接建班布置作业
- 数据结构:《Hello 算法》在线版(动画图解、代码可运行)——发给学生当课外读物效果极好
- 数据结构:VisuAlgo 可视化站——课堂演示排序/树/图,省掉 80% 口舌
- 开源AI:Datawhale《self-llm 开源大模型食用指南》——国产环境、部署微调全覆盖
- 开源AI:LLaMA-Factory —— 中文友好的一键微调框架,本科生动手门槛最低
- 开源AI:Ollama + Dify —— 没显卡也能做出能演示的 AI 应用
- Hadoop:厦大林子雨教材官网+百度网盘(
pan.baidu.com/s/1XvuoT1x-CYPYTEDAV0Jtng提取码ziyu)——PPT、大纲、数据集、虚拟机镜像、500 道题库全在里面 - Hadoop:Docker 一键集群仓库 —— 机房环境不统一时的救命方案
① 数据结构 计算机本科专业基础课 · 建议 64 学时(48理论 + 16上机)或 72 学时
1. 教材与参考书
主教材 · 国内主流三选一
- 严蔚敏《数据结构(C语言版)》清华大学出版社 —— 最经典,多数高校在用,配《数据结构题集》
- 李春葆《数据结构教程》(第6版)清华大学出版社 —— 配套最全(PPT+题库+上机实验指导+在线判题),备课最省事
- 陈越/何钦铭《数据结构》高等教育出版社 —— 与浙大 MOOC 完全配套,含"小白专场"手把手写代码
进阶 / 另类视角
- 邓俊辉《数据结构(C++语言版 第3版)》清华大学出版社 + 《数据结构习题解析》—— 配学堂在线公开课,体系严谨
- Weiss《数据结构与算法分析——C语言描述》—— 复杂度分析讲得最好
- Sedgewick《算法(第4版)》—— Java 实现,配 Princeton 公开课,红黑树/B树讲得清楚
给学生看的通俗读物
- 《Hello 算法》靳宇栋 —— GitHub 63.9k star,近 500 幅动画、代码一键运行。hello-algo.com
- 《大话数据结构》程杰 —— 生活化类比,学生自学无压力
- 《算法图解》Aditya Bhargava —— 入门趣味书
- 《我的第一本算法书》—— 零基础友好
2. 视频公开课
| 课程 | 特点 | 入口 |
|---|---|---|
| 首选 浙江大学 陈越/何钦铭《数据结构》 |
国内公认最好的数据结构课。含"小白专场"逐行带写 C 实现、每章实验指导视频、实验报告范例。可直接照搬其实验体系。 | 中国大学MOOC |
| 青岛大学 王卓《数据结构》 | B 站播放量最高,讲解极细致,适合基础薄弱学生回看。 | B 站搜索"王卓 数据结构" |
| 国家高等教育智慧教育平台(多校版本) | 汇聚湖北工程学院、中国传媒大学等多门《数据结构》慕课,每门都提供完整课件下载,适合拼课。 | higher.smartedu.cn 搜索"数据结构" |
| MIT 6.006 Introduction to Algorithms | 英文,讲义+作业+考试题全部开放,可摘题改编。 | MIT OCW |
| UC Berkeley CS61B | Project 设计极强(BearMaps 地图寻路、Gitlet 版控系统、BTree 数据库),想做大作业改造的首选参考。 | datastructur.es |
| Princeton Algorithms (Sedgewick) | Coursera,配合《算法(第4版)》,图论与字符串讲得深。 | Coursera 搜索 |
3. 课堂可视化工具(强烈建议上课就用这些)
| 工具 | 用途 | 链接 |
|---|---|---|
| 首选 VisuAlgo | 支持中文、可单步回退、带伪代码同步高亮。覆盖排序、链表、BST、AVL、红黑树、堆、哈希、图、LCS/DP。 | visualgo.net/zh |
| USFCA Data Structure Visualizations | 交互操作最直观,可自己插入/删除数据看结构变化。适合讲 AVL、B+ 树。 | cs.usfca.edu/~galles |
| Algorithm Visualizer | 可改代码并看动画,支持 C++/Java/JS。讲排序对比时直接用。 | algorithm-visualizer.org |
| BinaryTrees(平衡树) | 专门演示 AVL/RB 旋转过程,讲平衡二叉树必备。 | 520it.com/binarytrees |
| B-Tree 可视化 | B 树/B+ 树插入分裂过程,配合"数据库索引为什么用 B+ 树"这个案例。 | yangez.github.io/btree-js |
| Big-O Cheat Sheet | 常见结构/算法复杂度速查表,可打印发给学生。 | bigocheatsheet.com |
| Hello 算法动画图解 | 中文、可运行代码、全彩插图,适合做课件截图素材(开源可引用)。 | hello-algo.com |
4. 在线判题 / 作业平台
自建评测:Gradescope / Autolab / CodeGrader
若学校有服务器,可自建 OJ(如基于 Judge0 / DOMjudge),布置需要提交完整工程的大作业。
5. 实验与课程设计题目库
| 章节 | 可选实验 / 大作业 | 难度与考察点 |
|---|---|---|
| 线性表 | 一元多项式加减法、约瑟夫环、通讯录管理系统、顺序表与链表性能实测对比 | ★☆☆ 指针/结构体基本功 |
| 栈 | 表达式求值(中缀→后缀→计算)、括号匹配检验、迷宫求解、行编辑程序 | ★★☆ 栈的经典应用 |
| 队列 | 停车场管理、银行排队模拟、舞伴配对、打印机任务队列仿真 | ★★☆ 循环队列边界处理 |
| 串 | KMP 实现与 BF 对比、文本替换、英文词频统计 | ★★☆ next 数组推导 |
| 数组/矩阵 | 稀疏矩阵三元组转置(快速转置)、对称矩阵压缩存储 | ★★☆ |
| 树 | 哈夫曼编码与图片压缩、二叉排序树、家谱/文件系统目录树、表达式树 | ★★★ 递归设计 |
| 图 | 校园导游图(Dijkstra)、景区信息管理系统、排课系统(拓扑排序)、铺光纤(最小生成树)、关键路径 | ★★★ 综合度最高 |
| 查找 | 哈希表实现简易词典(含冲突处理对比)、B 树模拟数据库索引 | ★★★ |
| 排序 | 八大排序可视化 + 性能实测(不同规模/有序度下的比较次数与耗时) | ★★☆ 实验报告模板友好 |
| 综合 | 连连看游戏(图搜索+栈)、小型图书管理系统、压缩/解压工具 | ★★★★ 课程设计 |
6. 建议的 16 周教学进度
| 周次 | 教学内容 | 配套实验 |
|---|---|---|
| 1 | 绪论:数据结构三要素、抽象数据类型、算法复杂度分析(大 O 推导) | 环境熟悉 + 计时函数测复杂度 |
| 2 | 线性表:顺序表(插入/删除/查找及移动次数分析) | 实验1 顺序表 |
| 3 | 线性表:单链表、双向链表、循环链表 + 一元多项式 | 实验1 链表(PTA 题集) |
| 4 | 栈:顺序栈、链栈、表达式求值、括号匹配 | 实验2 栈与表达式求值 |
| 5 | 队列:循环队列、链队列、停车场管理 | 实验2 队列 |
| 6 | 串:BF 算法、KMP 算法与 next 数组推导 | 实验3 KMP + 词频统计 |
| 7 | 数组与广义表:特殊矩阵压缩、稀疏矩阵三元组/十字链表 | 稀疏矩阵快速转置 |
| 8 | 递归(可选)+ 阶段测验 / 期中小测 | 测验 |
| 9 | 树与二叉树:概念、性质、存储结构、四种遍历、遍历应用 | 实验4 二叉树遍历 |
| 10 | 线索二叉树、树与森林转换、哈夫曼树与编码 | 实验4 哈夫曼图片压缩 |
| 11 | 二叉排序树、平衡二叉树(AVL)、B 树与 B+ 树、并查集 | 实验5 二叉搜索树/AVL |
| 12 | 图:概念、邻接矩阵/邻接表、DFS、BFS | 实验6 图的遍历 |
| 13 | 最小生成树(Prim/Kruskal)、最短路径(Dijkstra/Floyd)、拓扑排序、关键路径 | 实验6 校园导游图 |
| 14 | 查找:顺序/二分/分块、哈希函数构造、冲突处理、性能分析 | 实验7 哈希词典 |
| 15 | 排序:插入/希尔/冒泡/快排/选择/堆/归并/基数 + 各算法比较与实测 | 实验8 排序性能对比 |
| 16 | 综合课程设计答辩 + 总复习 | 课程设计演示与答辩 |
7. 考核方案建议
建议加一项创新分:把算法讲清楚的视频/博客/可视化作品(知识输出),可加 3~5 分,能显著提升学习投入度。
② 开源AI技术实践 建议定位:不是理论课,而是"用开源工具链做出能跑的 AI 应用" · 48~64 学时
开源模型获取 → 本地部署 → 应用开发(Prompt/RAG/Agent) → 微调 → 评测 → 部署上线 → 参与开源。
每节课都要有"跑得起来"的产出,学生才不掉队。下面按这条主线组织资源。
1. 核心开源教程 / 可直接当教材用
Datawhale《self-llm 开源大模型食用指南》
GitHub 19.8k star。专为国内环境设计:环境配置、模型下载、部署、调用、LoRA 微调、量化、多模态,覆盖 Qwen/ChatGLM/Llama 等主流开源模型。中文、步骤极细,本科生动手门槛最低。
github.com/datawhalechina/self-llmDatawhale《Happy-LLM 从零开始的大模型原理与实践》
从 NLP 基础 → Transformer → 预训练语言模型 → 手搓 LLaMA2 → 训练 Tokenizer → 预训练小型 LLM → RAG/Agent。适合作为"原理+实践"兼顾的主线教材,有在线阅读版。
GitHub · 在线阅读Hugging Face 官方 LLM 课程(有简体中文版)
12 章,Apache 2.0 许可 —— 意味着你可以直接拿来做课件而不侵权。覆盖 Transformers、Tokenizers、Datasets、微调、分享部署,第 10~12 章含 SFT、LoRA、DPO、GRPO。每章配 Colab 可运行 Notebook。
huggingface.co/learn/llm-course · 中文镜像Datawhale《llm-universe》个人知识库助手
8.8k star。零基础走通 RAG 全流程:文档加载→切分→向量化→检索→LLM 生成→Gradio 部署。非常适合做本科生的第一个完整项目。
github.com/datawhalechina/llm-universeDatawhale《All-in-RAG》《Hello-Agents》
RAG 全栈指南(从基础到部署);Hello-Agents 讲 ReAct、工具调用、多步推理,帮助"穿透框架看原理"。
all-in-rag · hello-agents2. 分层可选的深度资源
| 方向 | 资源 | 适合什么 |
|---|---|---|
| 从零训练(理论深) | Stanford CS336: Language Modeling from Scratch —— 讲义、作业、代码全部公开,从数据清洗到 tokenizer 到 Transformer 到训练到评测。课程主页 | 给学有余力学生 / 研究生衔接 |
| 直觉理解 | Karpathy《Neural Networks: Zero to Hero》(YouTube/B站有中字)—— 从反向传播手写到 GPT 训练。karpathy.ai/zero-to-hero | 课前/课后拓展视频 |
| 中文系统课 | 李宏毅《机器学习》《生成式AI》课程(台大)—— 每年更新,中文讲解最清晰。课程主页 | 原理部分可参考其讲授方式 |
| 可视化 | 3Blue1Brown 神经网络/Transformer 系列(B 站官方中文)、bbycroft.net/llm(LLM 3D 可视化) | 课堂演示 Attention 原理 |
| 工程化 | Linux Foundation LFD473 PyTorch in Practice —— 课件开源,覆盖 Dataset/DataLoader/迁移学习/CV/NLP/TorchServe 部署。课程页 | 想补 PyTorch 基础时 |
| 产业课程大纲参考 | 上海交大教育集团《AI 大语言模型研发工程师实训课程》—— 完整七阶段大纲(含 Ollama / Dify / vLLM / LLaMA.cpp / DeepSpeed),可直接抄结构。大纲 | 课纲设计参考 |
3. 工具链清单(按教学模块)
| 模块 | 开源工具 | 说明 / 链接 |
|---|---|---|
| 模型获取 | ModelScope 魔搭(国内首选)、Hugging Face Hub | 国内下载速度与稳定性差距巨大,教学务必优先魔搭。 modelscope.cn · huggingface.co/models |
| 本地推理/部署 | Ollama、vLLM、llama.cpp、Xinference | Ollama 一行命令跑模型,最适合入门课;vLLM 讲高并发服务;llama.cpp 讲 CPU/量化。 ollama.com · docs.vllm.ai |
| 应用框架 | LangChain / LangGraph、LlamaIndex、Gradio、Streamlit | Gradio 做 Demo 最快(几行代码出网页),适合实验 3。 LangChain 文档 · gradio.app |
| 低代码平台 | Dify、FastGPT、RAGFlow | 无编程基础学生也能做出像样应用,且天然支持知识库/Agent/工作流,是期末项目的利器。 github.com/langgenius/dify |
| 向量库 | FAISS、Chroma、Milvus | 教学用 FAISS 本地文件即可;Milvus 用于讲分布式检索。 |
| 微调 | LLaMA-Factory(首选)、PEFT、TRL、Unsloth | LLaMA-Factory 有 Web UI,命令行恐惧症友好,中文文档全,是本科微调课的首选。 LLaMA-Factory · PEFT 文档 |
| 评测 | OpenCompass(上海AI Lab)、C-Eval、CMMLU | 讲"模型好不好不只是感觉",用榜单和数据说话。 OpenCompass |
| 训练可视化 | SwanLab(国产,中文)、Weights & Biases、TensorBoard | 微调实验必配,学生看 loss 曲线才有反馈。swanlab.cn |
4. 实验项目清单(建议 8~10 次)
| # | 实验 | 产出物 | 所需算力 |
|---|---|---|---|
| 1 | 本地跑通第一个开源模型:Ollama 拉取 Qwen2.5:1.5B,命令行对话 + Python API 调用 + REST 调用 | 可复现的调用脚本 | CPU / 4G 内存 |
| 2 | Prompt 工程实战:同一任务写 5 版提示词,对比 Zero-shot / Few-shot / CoT 输出质量 | 对比评测表 | 同上 |
| 3 | Gradio 做个人 AI 助手 Demo,支持多轮对话与参数调节(temperature/top_p) | 可分享网页链接 | 同上 |
| 4 | 量化与性能实测:同一模型 fp16 / int8 / int4 的显存占用、首字延迟、吞吐量对比 | 实测数据表 + 结论 | 同上 |
| 5 | 从零手搓 RAG:不使用框架,手写切分→embedding→FAISS 索引→检索→拼 prompt→生成 | 完整 Notebook | CPU 或 Colab |
| 6 | Dify 搭建课程知识库问答机器人(上传课件 PDF,配置切片与检索策略,发布 API) | 可访问的应用 | CPU |
| 7 | Agent 与工具调用:用 LangGraph/Function Call 实现查课表、查天气、查数据库的智能体 | 可演示的 Agent | CPU 或 Colab |
| 8 | LoRA 微调:用 LLaMA-Factory 在自建小数据集上微调 Qwen2.5-0.5B/1.5B(如课程答疑、古诗生成、分类) | 微调权重 + 训练曲线 | 6~8G 显存 / Colab 免费卡 |
| 9 | 微调前后评测:自建 50~100 条测试集,人工打分 + 自动指标(BLEU/ROUGE/准确率)对比 | 评测报告 | 同上 |
| 10 | vLLM 部署 + 压测:并发 1/10/50 下的吞吐与延迟曲线;尝试 OpenAI 兼容接口对接自己的应用 | 压测报告 | 8G+ 显存 |
| 期末 | 分组综合项目:本地模型 + 知识库/Agent + Web 界面 + 开源发布(GitHub README) | 答辩演示 | 按组自定 |
- 零 GPU:全程用 Ollama + 小模型(Qwen2.5:1.5B / Qwen3-1.7B / Phi 系列),CPU 可跑;微调改用 魔搭/Colab/Kaggle 免费 GPU。
- 消费级 8G 显卡:Qwen2.5-7B-int4 推理 + LoRA 微调完全可行,一个实验室几台机器即可分组轮转。
- 统一环境:提前做好 Docker 镜像或 Conda
environment.yml下发,否则第一节课就会有一半人卡在装环境。 - 网络:模型权重国内走魔搭,pip 走清华源,Docker 配国内镜像加速——提前写好"环境准备手册"发给学生。
5. 建议的 16 周教学进度
| 周次 | 主题 | 实践 |
|---|---|---|
| 1 | 导论:开源 AI 全景(模型/框架/平台/许可协议)、环境搭建 | 环境自检 |
| 2 | Python 与 LLM 基础回顾;Hugging Face Hub / ModelScope 使用规范 | 下载并跑通一个模型 |
| 3 | 本地部署:Ollama / llama.cpp / vLLM 原理与对比 | 实验1 |
| 4 | Prompt 工程:Zero-shot / Few-shot / CoT / 结构化输出 | 实验2 |
| 5 | Transformer 原理速览:Attention 手撕(NumPy 实现)+ 可视化 | 推演注意力矩阵 |
| 6 | Tokenizer(BPE/WordPiece)与 Embedding 实践 | 训练一个小 tokenizer |
| 7 | 向量库与语义检索:FAISS / Chroma、相似度度量、召回率 | 检索小实验 |
| 8 | RAG 从零实现(切分→向量化→检索→生成) | 实验5 |
| 9 | RAG 进阶:切片策略、重排 rerank、引用溯源、幻觉治理 | 优化上一周作品 |
| 10 | Dify 低代码平台实战:聊天助手 / 知识库 / 工作流 | 实验6 |
| 11 | Agent:ReAct、工具调用、记忆、多智能体(LangGraph) | 实验7 |
| 12 | 微调原理:全参 vs LoRA vs QLoRA,显存怎么算 | 显存测算练习 |
| 13 | LLaMA-Factory / PEFT 微调实战 | 实验8 |
| 14 | 模型评测(OpenCompass/C-Eval)与推理优化(量化、vLLM) | 实验9、10 |
| 15 | 项目开发周(分组,教师巡回答疑) | 期末项目 |
| 16 | 期末项目答辩 + 开源实践(给上游项目提 Issue / 改进文档,体验开源协作) | 答辩 + PR 截图 |
6. 考核方案建议
强烈建议不做期末笔试。这门课的价值在于"做出来",笔试会把学生逼回背书。若必须笔试,改为"故障排查 + 方案设计"开卷题。
③ Hadoop部署实践 建议定位:动手部署与运维能力 · 64 学时(32理论 + 32上机)
1. 教材
林子雨《大数据技术原理与应用》(第4版)
人民邮电出版社,国内 500+ 高校采用。第 4 版覆盖 Hadoop / HDFS / HBase / NoSQL / MapReduce / Hive / Spark / Flink / 流计算。配套:讲义PPT、教学大纲、软件、数据集、实验答案、虚拟机镜像、500 道题库(教师可申请)。
教材官网林子雨《大数据基础编程、实验和案例教程》(第3版)
清华大学出版社,上面那本的配套实践教材。按大数据分析全流程讲:采集→存储→处理→可视化,含 Linux、Hadoop、HDFS、MapReduce、HBase、Hive、Spark、Sqoop、Kafka、Flume、MySQL、MongoDB、Redis、ECharts、Tableau 等,附综合案例(网站用户行为分析)。
实验答案与在线资源可在教材官网下载《Hadoop权威指南》(第4版)Tom White
O'Reilly。讲原理与配置细节最权威,适合教师备课深挖和学生进阶阅读。
林子雨《Spark编程基础(Scala版/Python版)》
若课时允许加 Spark 环节,用这本,配套国家级一流课程。
2. 林子雨全套免费教学资源(重点,直接省掉大量备课工作量)
| 资源 | 说明 | 入口 |
|---|---|---|
| 必拿 教材配套下载专区(百度网盘) | 含最新版讲义 PPT、教学大纲、软件安装包、数据集、实验答案、课程思政素材、虚拟机镜像(学生直接导入 VMware 即可,绕过装环境的坑) | pan.baidu.com/s/1XvuoT1x-CYPYTEDAV0Jtng 提取码: ziyu |
| 高校大数据课程公共服务平台 | 厦门大学数据库实验室维护,累计访问 2500 万+。内含 17 本系列教材的全部配套资源、上机实验指南、安装指南。 | dblab.xmu.edu.cn |
| Hadoop 集群安装配置教程 | 厦大出品,步骤极详细(含 Ubuntu/CentOS 差异、常见错误),可作为学生实验手册直接印发。 | 集群安装配置教程 |
| 机房上机实验指南 | 与教材课后实验一致的上机指导,直接对应实验课时安排。 | dblab.xmu.edu.cn/post/6131 |
| MOOC《大数据系统及应用》 | 林子雨主讲,每讲配套 PPT 下载,共 7 讲覆盖 Hadoop/HDFS/MapReduce/Hive/YARN。 | 中国大学MOOC |
| 500 道题库 | 教师身份可向出版社/官网申请,出卷非常省事。 | 见教材官网"500道题库"入口 |
| 国家智慧教育平台《Hadoop大数据技术与项目实战》 | 对标国家专业教学标准"大数据平台部署与运维",以"电商平台用户行为数据分析"为项目主线,含项目需求篇、平台部署篇、集群管理篇,是很好的项目式教学参考。 | 课程页 |
3. 官方权威文档(部署细节以官方为准)
| 文档 | 链接 | 用途 |
|---|---|---|
| Hadoop Single Node Setup | SingleCluster.html | 单机 / 伪分布式三步走(standalone → pseudo-distributed → YARN),第 1~2 次实验 |
| Hadoop Cluster Setup | ClusterSetup.html | 完全分布式:角色划分、5 个配置文件、hadoop-env.sh、守护进程环境变量,第 5 次实验 |
| HDFS Architecture / User Guide | HdfsDesign.html | 讲存储原理、读写流程、副本机制的理论依据 |
| YARN / MapReduce 官方教程 | hadoop.apache.org/docs/stable 下 MapReduce Tutorial、YARN 文档 | MapReduce 编程与资源调度 |
| HDFS High Availability(QJM) | HDFSHighAvailabilityWithQJM | 第 15 次 HA 实验的权威依据 |
| Hive / HBase / Spark / Zookeeper 官方 Getting Started | 各项目官网 Documentation | 生态组件安装 |
4. Docker 一键集群(机房环境不统一时的最佳解法)
一条命令 起一套全分布式集群,极大降低第 1~2 周的损耗。以下仓库都可直接用于教学。
| 仓库 | 内容 | 适用环节 |
|---|---|---|
| 首选 hadoop-spark-docker | Hadoop 3.4.1 + Spark 3.5.6 全分布式,改 .env 里的 NUM_WORKER_NODES 即可扩缩容,内置 JupyterLab(8888)、HDFS UI(9870)、YARN UI(8088)、Spark History(18080)。MIT 许可。 |
核心实验环境,一学期通用 |
| eng_dados_cluster | Hadoop 3.x + Spark + Hive 3.1.3 + PostgreSQL 元数据库,配置文件按 .env 自动改写,节点数可调。 |
需要讲 Hive 时 |
| docker-hadoop | 基础 Hadoop 3.3.3 + 可选 Pig 节点、Hive 节点,可 make datanode-scaled WORKERS=N 动态扩 DataNode。 |
演示节点扩缩容 |
| Hadoop_Cluster (HA) | 3 Master + Worker + Zookeeper + Hive Metastore,含健康检查、资源限额、持久化卷,完整 HA。 | 高可用专题实验 |
| Hadoop-Hbase-HA | 最大的价值是保留了"手动搭建全过程命令记录"(Documentation 目录),可直接改编成"手动搭建 HA 集群"实验指导书。 | HA 手动搭建实验 |
| 参考教程:Hadoop3.4.0 + Hive3.1.3 分布式安装一体化 | Dockerfile + 集群生成 + Hive 安装 + MySQL 元数据库 + Python 远程连接,中文全流程。 | 教师自己搭环境时参考 |
5. 教学案例与数据集
厦大教材配套数据集
含电商用户行为日志(启动日志/事件日志)、数据仓库 10 张表结构字典等,与教材综合案例完全对应,直接用省得造数据。
获取:教材官网下载专区(网盘)
MovieLens 数据集
经典推荐系统/MapReduce 练习数据,有 100K / 1M / 25M 多个规模,适合演示"数据量增大时集群的表现"。
grouplens.org/datasets/movielens淘宝用户行为数据集(天池)
亿级行为记录,适合做数据清洗 + Hive 数仓分层 + 漏斗分析综合项目。量太大可抽样分发。
天池数据集平台搜索 "UserBehavior"Apache 官方示例作业
hadoop-mapreduce-examples-*.jar 内含 WordCount、Grep、Sort、Terasort(集群基准测试标配)、Pi 估算。
公开真实数据补充
NYC Taxi 行程数据(量大适合压测)、中国气象站点数据(适合"求每年最高温度"经典题)、Wikipedia dump(适合倒排索引/PageRank)。
6. 实验清单(16 次)
| # | 实验 | 关键产出 / 考察点 |
|---|---|---|
| 1 | Linux 基础 + 环境准备(虚拟机 / WSL / Docker 三选一)、创建 hadoop 用户 | 能敲出基本命令、理解用户与权限 |
| 2 | JDK 安装 + SSH 免密登录 + 单机/伪分布式 Hadoop 安装 | jps 看到 NameNode/DataNode |
| 3 | HDFS Shell 操作 + Web UI(9870)+ IDEA/Eclipse 远程开发环境搭建 | 文件增删改查、能看到块信息 |
| 4 | HDFS Java API 编程:上传下载、目录操作、文件元数据读取 | 可运行的 Java 工程 |
| 5 | 完全分布式集群搭建(3 节点:1 Master + 2 Worker) | Live Nodes = 2,跑通 WordCount |
| 6 | 集群基准测试(Terasort)+ 故障排查专题 | 性能数据 + 排错记录 |
| 7 | MapReduce 全流程:WordCount 编码→编译→打包→提交→看 YARN 日志 | 理解 split→map→shuffle→reduce |
| 8 | MapReduce 进阶:去重、排序、TopN、单表关联、多表 Join | 5 个小作业 |
| 9 | MapReduce 经典案例:倒排索引 / 好友推荐 / PageRank(三选二) | 综合编程能力 |
| 10 | YARN 资源调度:队列配置、Container 内存/CPU 调优、三种调度器对比 | 调参前后对比 |
| 11 | Hive 安装 + HiveQL:建表、分区表、数据导入、查询 | HQL 脚本 |
| 12 | Hive 数仓综合:ODS/DWD/DWS 分层 + 电商用户行为分析(UV/PV、漏斗、留存) | 数仓设计文档 + 结果表 |
| 13 | HBase 安装 + Shell/Java API 的 CRUD、RowKey 设计 | 对比 HBase 与 Hive 适用场景 |
| 14 | 数据采集入湖:Flume 采集日志 / Sqoop 同步 MySQL ↔ HDFS ↔ Hive | 端到端数据链路 |
| 15 | HA 高可用部署:Zookeeper + QJM + NameNode 自动故障转移(模拟 kill 主节点观察切换) | 故障转移截图与日志分析 |
| 16 | 综合项目答辩(集群搭建 + 数据入湖 + 处理分析 + 可视化) | 演示 + 报告 |
7. 常见故障与排错题库(教学价值极高,建议印成手册发学生)
| 现象 | 根因与解法 |
|---|---|
| Live Nodes 为 0 / DataNode 启动后消失 | 多次 hdfs namenode -format 导致 clusterID 不一致。解法:清空所有节点 datanode.data.dir 与 namenode.name.dir 目录后重新格式化(讲清"为什么不能随便 format",是个很好的考点) |
| SSH 免密登录失败 | .ssh 目录权限需 700,authorized_keys 需 600;/etc/hosts 中不能有 127.0.0.1 Master 这类记录 |
| ping 得通但端口不通 | CentOS 防火墙未关闭:systemctl stop firewalld && systemctl disable firewalld |
Error: JAVA_HOME is not set | 需在 hadoop-env.sh 中显式写绝对路径(脚本远程执行时读不到 ~/.bashrc) |
| 9870 / 8088 页面打不开 | 主机名与 IP 映射错误;或配置文件里写 localhost 而非主机名;检查 yarn.resourcemanager.hostname |
| Container killed by YARN / 内存不足 | yarn.nodemanager.resource.memory-mb 与 mapreduce.map.memory.mb 配置不合理,或虚拟机内存本身不够 |
| Windows 本地跑 MR 报 winutils.exe 缺失 | 需额外放置 winutils.exe 与 hadoop.dll。建议 Windows 学生统一改用 WSL2 或 Docker |
| HDFS 副本数告警 / Under-replicated blocks | DataNode 数量少于 dfs.replication,教学集群设为 1~2 |
| 中文乱码 | 源文件编码、MR 读写需统一 UTF-8,Hive 表字符集设置 |
| SafeMode 无法写入 | 刚启动时处于安全模式,hdfs dfsadmin -safemode leave(讲解安全模式机制的好时机) |
| Hive 启动报 metastore 连接失败 | MySQL 驱动未放 $HIVE_HOME/lib、JDBC URL 错误、未初始化 schema(schematool -dbType mysql -initSchema) |
| HBase 启动后 RegionServer 立刻挂 | 时钟不同步(hbase.master.maxclockskew)、Zookeeper 未起、主机名解析问题 |
8. 建议的 16 周教学进度与考核
| 周次 | 理论 | 上机 |
|---|---|---|
| 1 | 大数据概述、Hadoop 生态与版本演进、课程项目介绍 | 实验1 Linux 与虚拟机 |
| 2 | Hadoop 项目结构与安装(伪分布式) | 实验2 伪分布式安装 |
| 3 | HDFS 概念、体系结构、存储原理 | 实验3 HDFS Shell + Web UI |
| 4 | HDFS 读写过程、容错机制 | 实验4 HDFS Java API |
| 5 | 完全分布式部署、配置文件详解 | 实验5 3 节点集群 |
| 6 | 集群管理、基准测试、监控 | 实验6 Terasort + 排错 |
| 7 | MapReduce 模型、体系结构与工作流程 | 实验7 WordCount |
| 8 | Shuffle 过程原理、阶段测验 | 实验8 去重/排序/TopN |
| 9 | MapReduce 应用案例剖析 | 实验9 倒排索引/PageRank |
| 10 | YARN 架构、调度器与资源模型 | 实验10 YARN 调参 |
| 11 | Hive 原理、SQL→MR 转换机制、HA | 实验11 Hive 安装与 HiveQL |
| 12 | 数据仓库分层设计方法论 | 实验12 电商数仓综合 |
| 13 | HBase 数据模型、Region 与存储机制 | 实验13 HBase CRUD |
| 14 | 数据采集:Flume / Sqoop / Kafka 概览 | 实验14 数据采集链路 |
| 15 | 高可用架构(Zookeeper + QJM)、集群运维与调优 | 实验15 HA 部署与故障转移 |
| 16 | 综合项目答辩 + 复习 | 答辩 |
这门课的核心能力是"遇到问题能解决",所以实验报告的评分重点应放在排错过程而非"照着做成功"。
通用教学建议
① 建一个班级课程仓库
GitHub / Gitee 建仓,按 ppt/ code/ lab/ troubleshooting/ student-projects/ 分目录。每节课的课件和示例代码课前推送。学生交作业也走仓库 PR,顺便练 Git —— 对计算机本科生是刚需技能。
② 环境统一是最大杠杆
数据结构:统一 VS Code / Dev-C++ / CLion 版本,或提供在线编译环境。开源AI:Docker 镜像或 environment.yml 一份。Hadoop:直接发虚拟机镜像或用 Docker Compose。环境上省下的 2 周课时,能多讲一整章。
③ 每门课都配一个"贯穿项目"
数据结构 → 校园导游系统;开源AI → 课程答疑助手;Hadoop → 电商用户行为离线数仓。学生分阶段把每周实验拼成一个完整作品,期末答辩就有东西可讲,也便于形成课程成果展示。
④ 用"排错/踩坑"替代部分作业
尤其 Hadoop 和开源AI 这类工程课,学生照抄步骤完成实验含金量低。让每个学生贡献至少 3 条自己踩过的坑及解法,汇成班级手册,既防抄袭又真实反映能力。
⑤ 三条技术栈交叉点可以联动
数据结构课的图/堆 → Hadoop 的 PageRank、TopN;数据结构课的性能分析 → AI 课的推理吞吐实测;Hadoop 的分布式思想 → AI 课的分布式训练(DeepSpeed)。在课堂上点破这些联系,学生会把三门课串成一张网。
⑥ 版权与合规提醒
Hugging Face 课程、微软 AI Agents 课程、Hello 算法均为宽松开源许可,可自由改编入课件;教材配套 PPT 仅限本校教学使用,勿公开发布到网络。使用开源模型时注意各模型的许可协议(如 Llama 系列有商用限制),这本身也是开源课该讲的内容。