核心验证:HDFS 能创建目录、上传 / 下载文件、查看文件内容、删除文件,代表 HDFS 存储链路正常。
js# 在HDFS根目录下创建test目录(HDFS路径以/开头)
hadoop fs -mkdir /test
# 验证目录创建成功
hadoop fs -ls /
# 输出中能看到 drwxr-xr-x - root supergroup 0 2025-12-20 05:00 /test
js# 在本地(服务器)创建一个文本文件,写入测试内容
echo "Hello Hadoop
Hello MapReduce
Hello YARN
Hadoop is cool" > /tmp/test.txt
# 查看本地文件内容(确认无误)
cat /tmp/test.txt
# 把本地/tmp/test.txt上传到HDFS的/test目录下
hadoop fs -put /tmp/test.txt /test/
# 验证上传成功
hadoop fs -ls /test
# 输出:-rw-r--r-- 1 root supergroup 56 2025-12-20 05:01 /test/test.txt
# 读取HDFS中test.txt的内容(验证能正常读取)
hadoop fs -cat /test/test.txt
# 输出和本地文件一致:
# Hello Hadoop
# Hello MapReduce
# Hello YARN
# Hadoop is cool
# 先删除本地/tmp/test_download.txt(避免冲突)
rm -rf /tmp/test_download.txt
# 从HDFS下载/test/test.txt到本地/tmp/test_download.txt
hadoop fs -get /test/test.txt /tmp/test_download.txt
# 验证下载的文件内容
cat /tmp/test_download.txt
# 内容和原文件一致则正常
核心验证:YARN 资源调度正常、MapReduce 计算框架能运行,代表 Hadoop 计算链路正常(这是 Hadoop 最经典的入门案例,统计文本中单词出现次数)。
js# 1. 本地创建更丰富的测试文件
echo "apple banana apple
banana orange apple
orange grape" > /tmp/wordcount.txt
# 2. 重新创建HDFS目录并上传文件
hadoop fs -mkdir /wordcount
hadoop fs -put /tmp/wordcount.txt /wordcount/
# 3. 验证上传成功
hadoop fs -cat /wordcount/wordcount.txt
执行 WordCount 计算(调用 Hadoop 自带的示例 Jar 包)
js# 核心命令:hadoop jar <示例Jar包路径> <WordCount类名> <输入路径> <输出路径>
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /wordcount/wordcount.txt /wordcount/output
# 执行过程会输出大量日志,关键看最后是否有 "Job job_xxxx completed successfully" 提示
注意
输出路径 /wordcount/output 必须不存在(Hadoop 禁止覆盖已有目录,否则报错);
若报错 “找不到 Jar 包”,检查 Jar 包路径:ls $HADOOP_HOME/share/hadoop/mapreduce/ 确认 hadoop-mapreduce-examples-3.3.6.jar 存在。
查看 WordCount 计算结果
js# 查看输出目录下的结果文件(MapReduce的输出会拆分成part-r-00000)
hadoop fs -cat /wordcount/output/part-r-00000
# 正常输出(单词+出现次数):
apple 3
banana 2
grape 1
orange 2

HDFS 伪分布式(Pseudo-Distributed)是单节点模拟分布式 HDFS 集群的部署模式 —— 所有 HDFS 核心进程(NameNode、DataNode、SecondaryNameNode)都运行在同一台服务器上,但进程间通过网络通信、按分布式逻辑协作(区别于 “单机模式” 的单进程运行)。
本文作者:松轩(^U^)
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!