面向初学者的 Hadoop的学习路线

────────────────

一、Hadoop 到底是什么?

  1. 一句话定义
    Hadoop 是一个开源的"分布式存储 + 分布式计算"框架,用来在成百上千台普通服务器上存储和处理 PB 级数据。
  2. 两个核心模块
    • HDFS:把一份大文件切分成多个块,分散存储到多台机器,并自动做多副本容错。
    • MapReduce:把一次大任务拆分成很多小任务(Map),再把结果合并(Reduce),同样跑在很多台机器上。
  3. 配套生态(初学阶段先知道名字即可)
    YARN(资源调度)、Hive(类 SQL 查询)、HBase(实时 KV)、Spark(内存计算)、Sqoop(数据导入导出)等。

────────────────

二、它能解决什么问题?

• 存储:单台机器硬盘装不下或单副本容易丢数据。

• 计算:单机处理时间过长,需要并行加速。

• 成本:用廉价 PC 服务器替代昂贵小型机。

────────────────

三、零基础到入门,6 步学习路线

0)前置知识(1~2 天)

• Linux 基本命令(cd、ls、scp、ssh、chmod)

• Java 基础语法(能写 HelloWorld 即可)

• 虚拟机概念(会装 VirtualBox/VMware)

1)单机伪分布式环境(1 天)

目的:先在笔记本上跑起来,降低心理门槛。

工具:VMware + CentOS 7 + Hadoop 3.x 伪分布式。

关键配置:

• core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

• 能成功执行 hdfs dfs -ls / 和跑官方示例 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 2 5

2)真分布式集群(3 天)

目的:体会"多台机器协同"。

最小规模:1 台 NameNode + 3 台 DataNode,可继续用虚拟机。

重点操作:

• SSH 免密登录

• 格式化 HDFS:hdfs namenode -format

• 启动/停止脚本:start-dfs.shstart-yarn.sh

3)HDFS 基础命令(1 天)

• 上传:hdfs dfs -put local.txt /user/hadoop/

• 下载:hdfs dfs -get /user/hadoop/local.txt ./

• 查看块信息:hdfs fsck / -files -blocks -locations

4)MapReduce 编程(3~4 天)

先跑示例:WordCount、TopN、二次排序。

再手写:自定义分区、Combiner、自定义计数器。

开发流程:

• Windows IDEA → 打 jar → hadoop jar xxx.jar 提交到集群

调试技巧:本地断点 + 日志查看 (yarn logs -applicationId app_xxx)

5)Hive 初体验(2 天)

目的:用 SQL 而不是 Java 做分析。

步骤:

• HiveServer2 + Beeline 启动

create table, load data, select count(*) from logs;

• 与 HDFS 的对应关系:一张 Hive 表就是 HDFS 上的一个目录。

6)综合案例 + 可视化(2~3 天)

案例:电商日志分析(PV/UV、留存率)。

数据流:

Nginx 日志 → Flume → HDFS → Hive → MySQL → Superset 可视化。

做到这里,你就完成了"从数据采集到展示"的闭环。

────────────────

四、常见坑 & 排查思路

• 端口被占用:8088、9870、10000 等用 netstat -tunlp 查。

• 权限问题:hdfs dfs -chmod -R 777 /tmp 临时解决。

• Java 版本不匹配:Hadoop 3.x 建议 JDK 8。

• 内存不足:虚拟机给 4 GB 起步;YARN 内存参数 yarn.nodemanager.resource.memory-mb

────────────────

五、推荐资源

书籍

• 《Hadoop 权威指南(第 4 版)》------大而全,可当工具书。

• 《Hive 编程指南》------SQL 化分析必看。