从 Hadoop 到 Hive:大数据入门的务实路径
这门课主要解决的是“零基础如何切入大数据开发”的问题。很多初学者面对海量技术名词容易发懵,课程选择了一条相对平滑的学习曲线:先讲 Hadoop 基础,再过渡到 Hive,最后通过实战项目串联数仓建模与离线开发技能。它不追求覆盖所有前沿组件,而是聚焦于企业最常见的离线数据处理场景,帮助学员建立起对大数据技术栈的基本认知框架。
适合人群主要是两类:一是完全没有编程或数据背景,但希望转行进入数据领域的新人;二是已有一定计算机基础(如了解 Linux、SQL 或 Java 之一),但尚未系统接触过大数据生态的职场人。如果你已经有两年以上 Spark、Flink 或实时计算的经验,这门课的前半部分可能会显得过于基础,建议直接跳到实战项目章节。
资料怎么配合练习:先看这三块
建议初学者按以下顺序使用配套资料:
**第一部分:Hadoop 核心概念与环境搭建**
先看懂 HDFS 和 MapReduce 的设计思想,不要急于敲命令。资料中若有实验环境搭建步骤,务必在自己的虚拟机或云服务器上亲手跑一遍,这是理解后续所有组件的基础。
**第二部分:Hive 语法与数仓分层逻辑**
重点掌握 HQL 与标准 SQL 的差异,以及 ODS/DWD/DWS/ADS 分层的设计意图。配合资料中的示例数据,尝试自己写出几段清洗和聚合查询,理解“为什么这样分层”比“怎么写语法”更重要。
**第三部分:全流程实战项目**
这是检验学习成果的关键环节。先用资料中的数据模拟真实业务场景,独立完成从数据接入、清洗、建模到导出报表的全过程。遇到报错不要急着看答案,先尝试阅读日志定位问题——这个过程本身就是岗位能力的预演。
学完能独立做什么
完成核心模块后,你可以独立承担初级大数据离线开发工程师的基础工作:搭建和维护 Hadoop 集群环境、使用 Hive 进行数据清洗和报表开发、理解企业数仓的分层架构并据此编写 ETL 脚本。对于招聘方而言,这意味着你具备基本的岗位上手能力,而不是只会写 Demo 的理论学习者。
需要明确的是,这门课侧重于离线批处理场景。如果你未来想转向实时计算、数据治理或算法工程,还需要在此基础上补充 Spark Streaming、Kafka、Airflow 等进阶技术。但对于第一步来说,它提供了一条清晰、可执行的路径。
课程目录
├── 第1章 大数据,比你更懂你自己/ │ ├── [ 35M] 1-1 为什么大数据行业更有钱途? │ ├── [2.8M] 1-2 本章学习安排 │ ├── [ 33M] 1-3 什么是大数据 │ ├── [ 24M] 1-4 大数据特点(4V) │ ├── [ 29M] 1-5 大数据带来的变革 │ ├── [6.4M] 1-6 大数据应用场景 │ ├── [ 25M] 1-7 大数据前景 │ └── [8.0M] 1-8 大数据学习方法论 ├── 第2章 初识Hadoop/ │ ├── [2.7M] 2-1 课程目录 │ ├── [ 76M] 2-2 Hadoop概述 │ ├── [100M] 2-3 Hadoop发展史(了解) │ ├── [ 66M] 2-4 认识Hadoop三大核心组件 │ ├── [ 50M] 2-5 大数据生态圈 │ └── [ 24M] 2-6 发行版的选择 ├── 第3章 Hadoop之HDFS篇/ │ ├── [5.3M] 3-1 课程目录 │ ├── [ 63M] 3- 10 Hadoop解压及重要目录讲解 │ ├── [114M] 3- 11 HDFS核心配置文件及免 │ ├── [143M] 3- 12 HDFS启停(整体和单个) │ ├── [ 13M] 3- 13 环境变量补充 │ ├── [ 57M] 3- 14 初识HDFS常用命令 │ ├── [104M] 3- 15 HDFS命令行操作之文件上传 │ ├── [ 19M] 3- 16 HDFS命令行操作之文件内容查看 │ ├── [ 22M] 3- 17 HDFS命令行操作之文件下载 │ ├── [ 70M] 3- 18 HDFS命令行操作之其他常用操作 │ ├── [ 43M] 3- 19 HDFS API开发之基本环境介绍 │ ├── [ 63M] 3- 20 jUnit快速入门 │ ├── [ 39M] 3- 21 jUnit生命周期(上) │ ├── [ 45M] 3- 22 jUnit生命周期(下) │ ├── [157M] 3- 23 HDFS API开发之创建文件夹 │ ├── [125M] 3- 24 HDFS API开发之上传文件 │ ├── [121M] 3- 25 HDFS API开发之参数优先级问题 │ ├── [ 59M] 3- 26 HDFS API开发之文件下载和重命名 │ ├── [ 86M] 3- 27 HDFS API开发之代码重构 │ ├── [132M] 3- 28 HDFS API开发之列表展示功能 │ ├── [ 22M] 3- 29 HDFS API开发之删除操作 │ ├── [108M] 3-3 初识HDFS │ ├── [ 99M] 3- 30 HDFS API开发之基于IO流的方式 │ ├── [112M] 3- 31 【重要!必掌握】经典面试题之HDFS写数据流程 │ ├── [ 52M] 3- 32 【重要!必掌握】经典面试题之HDFS读数据流程 │ ├── [ 92M] 3-33 【重要!必掌握】NameNode&SecondaryNameNode工作机制(上) │ ├── [153M] 3-34 【重要!必掌握】NameNode&SecondaryNameNode工作机制(下) │ ├── [156M] 3- 35 【重要!必掌握】DataNode工作机制 │ ├── [ 98M] 3- 36 安全模式 │ ├── [251M] 3-4 HDFS假设和目标 │ ├── [145M] 3-5 【重要!必掌握】HDFS架构 │ ├── [ 54M] 3-6 文件系统命名空间 │ ├── [131M] 3-7 副本因子及副本拜访策略 │ ├── [ 29M] 3-8 【重要!必掌握】经典面试题 │ └── [9.9M] 3-9 HDFS优缺点 ├── 第4章 Hadoop之MapReduce篇/ │ ├── [ 26M] 4-1 课程目录 │ ├── [138M] 4- 10 词频统计之自定义Mapper │ ├── [ 87M] 4- 11 词频统计之自定义Reducer │ ├── [101M] 4- 12 词频统计之自定义Driver │ ├── [101M] 4- 13 词频统计之测试及重构 │ ├── [268M] 4- 14 词频统计之Mapper源码分析 │ ├── [ 79M] 4- 15 词频统计之Reducer源码分析 │ ├── [115M] 4- 16 词频统计之模板方法模式 │ ├── [ 69M] 4- 17 序列化概述 │ ├── [ 95M] 4- 18 序列化之JDK自带的序列化机制 │ ├── [122M] 4- 19 序列化之Data序列化机制 │ ├── [109M] 4-2 初识MapReduce框架 │ ├── [112M] 4- 20 Hadoop序列化之Writable接口详解 │ ├── [141M] 4- 21 Hadoop序列化之需求分析 │ ├── [ 58M] 4- 22 Hadoop序列化之自定义序列化类 │ ├── [ 77M] 4- 23 Hadoop序列化之自定义Mapper类 │ ├── [ 51M] 4- 24 Hadoop序列化之自定义Reducer类 │ ├── [173M] 4- 25 Hadoop序列化之自定义Driver类及测试 │ ├── [ 67M] 4- 26 Hadoop序列化之总结 │ ├── [269M] 4-27 初识InputFormat&InputSplit │ ├── [ 85M] 4- 28 InputSplit和Block的关系 │ ├── [248M] 4- 29 本地IDEA运行时InputSplit的大小测试 │ ├── [118M] 4-3 MapReduce框架的优缺点 │ ├── [ 66M] 4- 30 认识FileInputFormat │ ├── [139M] 4- 31 TextInputFormat编程 │ ├── [206M] 4-32 KeyValueTextInputFormat编程 │ ├── [202M] 4- 33 NLineInputFormat编程 │ ├── [275M] 4- 34 DBInputFormat编程 │ ├── [201M] 4- 35 Partitioner功能及编程 │ ├── [ 66M] 4- 36 本地预计算Combiner意义 │ ├── [166M] 4- 37 本地预计算Combiner编程 │ ├── [112M] 4- 38 排序概述 │ ├── [148M] 4- 39 排序之全局排序编程 │ ├── [ 81M] 4-4 【重要!必掌握】MapReduce思想 │ ├── [ 83M] 4- 40 排序之分区排序编程 │ ├── [184M] 4- 41 通过源码认识OutputFormat │ ├── [193M] 4-42 OutputFormat编程之输出数据到MySQL表中 │ ├── [326M] 4-43 OutputFormat编程之自定义OutputFormat │ ├── [177M] 4- 44 MapReduce全流程之MapTask工作原理 │ ├── [ 80M] 4-45 MapReduce全流程之ReduceTask工作原理 │ ├── [ 30M] 4- 46 MapReduce全流程之Shuffle工作原理 │ ├── [330M] 4- 47 MapReduce全流程之调优 │ ├── [ 71M] 4- 48 MapReduce全流程之加强 │ ├── [ 64M] 4- 49 场景题之group by需求分析 │ ├── [ 36M] 4-5 MapReduce核心进程 │ ├── [103M] 4- 50 场景题之group by功能开发及测试 │ ├── [ 28M] 4- 51 场景题之distinct需求分析 │ ├── [ 50M] 4- 52 场景题之distinct功能实现及测试 │ ├── [ 62M] 4- 53 场景题之ReduceJoin需求分析 │ ├── [ 71M] 4- 54 场景题之ReduceJoin自定义序列化类 │ ├── [283M] 4- 55 场景题之ReduceJoin功能开发及测试 │ ├── [ 37M] 4- 56 场景题之ReduceJoin的弊端 │ ├── [ 62M] 4- 57 场景题之MapJoin原理分析 │ ├── [287M] 4- 58 场景题之MapJoin功能实现及测试 │ ├── [180M] 4- 59 基于MR编程开发核心组件系统性梳理 │ ├── [234M] 4-6 官方词频统计案例分析 │ ├── [ 20M] 4-7 词频统计数据流图解 │ ├── [122M] 4-8 MapReduce编程规范 │ └── [ 50M] 4-9 初识MR编程中的数据类型 ├── 第5章 Hadoop之YARN篇/ │ ├── [4.2M] 5-1 课程目录 │ ├── [ 46M] 5- 10 开启作业历史服务器 │ ├── [182M] 5- 11 YARN命令(掌握使用方法) │ ├── [ 78M] 5-12 【重要!必掌握】打包自己开发的作业到YARN上运行 │ ├── [ 44M] 5- 13 初识YARN调度器 │ ├── [6.7M] 5- 14 调度器之FIFO │ ├── [218M] 5-15 调度器之CapacityScheduler深入详解 │ ├── [216M] 5-16 【重要!必掌握】调度器之CapacityScheduler队列配置及测试 │ ├── [ 32M] 5-17 【重要!必掌握】调度器之CapacityScheduler优先级配置及测试 │ ├── [ 86M] 5-2 YARN产生背景 │ ├── [ 96M] 5-3 YARN架构核心组件 │ ├── [229M] 5-4 【重要!必掌握】YARN核心组件职责 │ ├── [ 98M] 5-5 【重要!必掌握】YARN工作原理 │ ├── [ 28M] 5-6 YARN容错性 │ ├── [ 16M] 5-7 以YARN为核心的生态系统 │ ├── [ 33M] 5-8 YARN单节点部署 │ └── [ 82M] 5-9 提交官方自带案例到YARN上运行并认识YARN UI界面 ├── 第6章 分布式协调服务ZooKeeper/ │ ├── [5.7M] 6-1 课程目录 │ ├── [ 50M] 6- 10 【重要!必掌握】ZK监听器实操 │ ├── [119M] 6- 11 ZK命令行详解之四字命令 │ ├── [ 14M] 6- 12 ZK集群核心概念 │ ├── [242M] 6- 13 ZK单节点多Server部署及HA测试 │ ├── [ 60M] 6-2 初识ZK │ ├── [114M] 6-3 ZK角色及选举机制 │ ├── [ 53M] 6-4 ZK在企业中的使用场景 │ ├── [ 97M] 6-5 ZK单机单Server部署 │ ├── [ 30M] 6-6 【重要!必掌握】ZK数据模型 │ ├── [ 81M] 6-7 ZK命令行详解之创建 │ ├── [ 38M] 6-8 ZK命令行详解之修改和删除 │ └── [ 10M] 6-9 初识ZK中的监听器 ├── 第7章 Hadoop集群篇/ │ ├── [6.9M] 7-1 课程目录 │ ├── [ 25M] 7-2 从单机版引入到集群版 │ ├── [114M] 7-3 Hadoop集群规划及准备工作 │ ├── [153M] 7-4 Hadoop集群部署及测试 │ ├── [399M] 7-5 Hadoop HA架构 │ ├── [ 65M] 7-6 ZK分布式环境部署 │ └── [176M] 7-7 Hadoop集群HDFS HA配置及测试 ├── 第8章 初识Hive/ │ ├── [3.7M] 8-1 课程目录 │ ├── [ 25M] 8-10 Hive访问方式之HS2&beeline │ ├── [ 46M] 8- 11 【重要!必掌握】Hive中两个重要参数的用法 │ ├── [ 76M] 8-2 Hive产生背景 │ ├── [151M] 8-3 Hive是什么 │ ├── [ 39M] 8-4 Hive的优缺点 │ ├── [147M] 8-5 【重要!必掌握】Hive架构 │ ├── [ 36M] 8-6 Hive部署架构 │ ├── [ 96M] 8-7 经典面试题 │ ├── [196M] 8-8 Hive部署及快速使用 │ └── [125M] 8-9 Hive中参数的设置和使用 └── 第9章 Hive DDL&DML/ ├── [4.4M] 9-1 课程目录 ├── [ 54M] 9- 10 经典面试题分析之内外部表转换问题 ├── [ 44M] 9-11 【重要!必掌握】经典面试题分析之内外部表对比及使用场景 ├── [ 74M] 9- 12 DDL之修改表实操 ├── [ 33M] 9- 13 经典面试题之drop和truncate的区别 ├── [324M] 9- 14 【重要!必掌握】DML之表数据加载的N种姿势 ├── [ 58M] 9- 15 经典面试题之为什么不使用insert values的写法呢 ├── [ 92M] 9- 16 DML之通过SQL导出数据 ├── [ 55M] 9-17 【重要!必掌握】DML之export&import实操 ├── [ 28M] 9- 18 关于truncate的思考题 ├── [ 45M] 9- 19 分区表意义何在 ├── [ 23M] 9-2 【重要!必掌握】Hive数据模型 ├── [195M] 9- 20 分区表实操之单分区表创建及数据加载 ├── [ 35M] 9- 21 分区表实操之多级分区表创建及数据加载 ├── [122M] 9- 22 场景题之使用动态分区解决复杂问题 ├── [ 69M] 9- 23 SQL查询之基础使用 ├── [ 18M] 9- 24 SQL查询之聚合函数的使用 ├── [ 52M] 9- 25 【重要!必掌握】SQL查询之分组函数的使用 ├── [116M] 9- 26 【重要!必掌握】SQL查询之JOIN的使用 ├── [113M] 9-3 DDL之创建数据库 ├── [ 61M] 9-4 DDL之修改和删除数据库 ├── [ 50M] 9-5 Hive数据类型&分隔符 ├── [115M] 9-6 DDL之创建表语法 ├── [ 93M] 9-7 DDL之创建表实操 ├── [ 51M] 9-8 经典面试题分析之内部表 └── [ 39M] 9-9 经典面试题分析之外部表 ├── 第10章 Hive函数篇/ │ ├── [4.8M] 10-1 课程目录 │ ├── [ 63M] 10- 10 动手实操URL函数的使用 │ ├── [ 25M] 10- 11 动手实操NVL函数的使用 │ ├── [169M] 10- 12 动手实操场景题之条件控制函数的使用 │ ├── [ 61M] 10- 13 【重要!必掌握】动手实操场景题之行列转换功能一 │ ├── [ 95M] 10- 14 【重要!必掌握】动手实操场景题之行列转换功能二 │ ├── [ 43M] 10-15 【重要!必掌握】动手实操场景题之使用Hive完成wc统计 │ ├── [ 17M] 10- 16 初识Hive UDF函数 … 其余 2 58 项略,目录共 458 项






