前哨站/第3章 搭建Eclipse开发环境
第3章 搭建Eclipse开发环境

第3章 搭建Eclipse开发环境

在 Windows 上用 Eclipse 写 MapReduce:伪分布式环境 + Hadoop 插件 + 跑通官方 WordCount 例子。

伪分布式EclipseWordCount

本章学习目标

  • 能搭建 Hadoop 伪分布式环境
  • 能在 Windows 安装配置 JDK 与 Eclipse
  • 能配置 Eclipse 的 Hadoop 开发插件与运行参数
  • 能运行 Hadoop 自带的 WordCount 示例并看懂输出

本章导览

核心内容

3.1

搭建Hadoop伪分布式环境

伪分布式 = 所有角色(NameNode/DataNode/ResourceManager/NodeManager)跑在同一台机器上,用本地文件系统模拟 HDFS 目录。适合学习与调试,不需要三台虚拟机。

SHELL
# 1) 只改两处即可
# core-site.xml
<property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
# hdfs-site.xml
<property><name>dfs.replication</name><value>1</value></property>

# 2) 格式化并启动
hdfs namenode -format
start-dfs.sh && start-yarn.sh
jps     # NameNode / DataNode / SecondaryNameNode / ResourceManager / NodeManager
3.2

在Eclipse中配置Hadoop开发环境

Windows 端需要:JDK → Eclipse → Hadoop 二进制包(用于本地依赖库)→ 环境变量 → Eclipse 插件。

3.2.1

Windows中安装配置JDK

  • 安装与 Linux 相同版本的 JDK 8(避免编译版本不一致)
  • 配置 JAVA_HOME 与 Path,命令行 <code class="inl">java -version</code> 验证
3.2.2

安装Eclipse并配置Hadoop插件

SHELL
# 1) 解压 Hadoop 到 Windows(如 D:\hadoop-3.3.1),仅用于依赖库
# 2) 配置环境变量
HADOOP_HOME = D:\hadoop-3.3.1
Path 追加 %HADOOP_HOME%\bin

# 3) 把 hadoop-eclipse-plugin 放入 eclipse/dropins 目录后重启
# 4) Window → Preferences → Hadoop Map/Reduce 指定 Hadoop 安装目录
# 5) 在 Map/Reduce Locations 里新建连接:localhost:9000
Windows 上直接跑会报 winutils.exe 缺失或 Could not locate executable null\bin\winutils.exe,把对应版本的 winutils.exe 放到 %HADOOP_HOME%\bin 即可。
3.3

演示Hadoop自带的单词统计程序

这是全课程第一个 MapReduce 案例,教材用它把"写代码 → 打包 → 提交 → 看结果"这条链路走通。

SHELL
# 1) 准备输入数据
hdfs dfs -mkdir -p /input
echo "hello world hello hadoop" > w.txt
hdfs dfs -put w.txt /input/

# 2) 运行自带示例(jar 在 $HADOOP_HOME/share/hadoop/mapreduce/)
hadoop jar hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output

# 3) 查看结果
hdfs dfs -cat /output/part-r-00000
# hadoop    1
# hello     2
# world     1
WordCount 执行过程(教材第6章会展开讲)
环节发生了什么
InputFormat 切片w.txt 被切成若干 InputSplit,每个 Split 起一个 Map 任务
Map 阶段每行拆词,输出 (hello,1) (world,1) (hello,1)…
Shuffle按 key 分区、排序、合并,相同 key 进入同一个 Reduce
Reduce 阶段对每个 key 的 value 列表求和,输出最终次数

本章小结

本章完成了开发环境的搭建:先搭伪分布式让单机能跑 Hadoop,再在 Windows 端装 JDK、Eclipse 与 Hadoop 插件,最后用官方 WordCount 示例走通"准备数据 → 提交作业 → 查看结果"的完整流程。

思考与练习 先自己做,再点开答案

01

伪分布式与完全分布式的主要区别?

查看参考答案

伪分布式所有守护进程跑在同一台机器,副本数通常设为 1;完全分布式进程分布到多台机器,数据多副本存放,具备真正的容错与并行能力。

02

运行 WordCount 报 "winutils.exe" 相关错误怎么办?

查看参考答案

Windows 端缺少 hadoop 的 winutils 工具:下载与 Hadoop 版本匹配的 winutils.exe 与 hadoop.dll,放到 %HADOOP_HOME%\bin 下,并确保 HADOOP_HOME 已配置。

03

/output 目录已存在时作业为什么失败?

查看参考答案

MapReduce 要求输出目录不存在(防止覆盖已有结果)。删除后重试:hdfs dfs -rm -r /output。