💡 HDFS(Hadoop Distributed File System)作为 Hadoop 生态系统的核心组件,广泛应用于海量数据的分布式存储场景。对于开发者而言,伪分布模式提供了一种低成本、高还原度的学习与测试方式。
本文将详细介绍如何在本地搭建并使用 HDFS 的伪分布模式,包括环境准备、配置过程、常用命令及常见问题排查,帮助你快速入门 Hadoop 分布式文件系统的实践操作。
一、什么是伪分布模式?
Hadoop 有三种运行模式:
-
本地模式:所有服务都运行在一个 JVM 中,适合单元测试。
-
伪分布模式:所有服务运行在同一台机器的不同 JVM 中,模拟分布式环境,适合学习和开发。
-
完全分布式模式:服务部署在多台机器上,适合生产环境。
伪分布模式兼顾学习效率与实用性,是很多初学者和测试场景的首选。
二、环境准备
在开始搭建前,请确保完成以下准备工作:
1. 安装 JDK
Hadoop 依赖 Java 运行环境:
java -version
推荐使用 JDK 8 或 JDK 11,确保其路径设置在环境变量中。
2. 下载并解压 Hadoop
从 Apache Hadoop 官网 下载适合的版本,例如 3.3.1。
tar -zxvf hadoop-3.3.1.tar.gz -C /opt/installs/
3. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
4. 配置 SSH 免密登录
ssh-keygen -t rsa
ssh-copy-id bigdata01
ssh bigdata01 # 验证是否免密成功
5. 修改 SELinux
vi /etc/selinux/config
# 修改为:
SELINUX=disabled
然后重启系统生效。
三、配置 Hadoop 文件
进入配置目录:
cd /opt/installs/hadoop/etc/hadoop
1. 修改 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata01:9820</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/installs/hadoop/tmp</value>
</property>
</configuration>
2. 修改 hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata01:9868</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>bigdata01:9870</value>
</property>
</configuration>
四、配置环境变量
编辑 /etc/profile
添加以下内容:
export HADOOP_HOME=/opt/installs/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/opt/installs/jdk
# 以 root 用户启动各组件(仅用于测试)
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
刷新配置:
source /etc/profile
hadoop version # 验证是否配置成功
五、格式化 NameNode
首次启动前需要格式化:
hdfs namenode -format
输出提示包含:
Storage directory ... has been successfully formatted.
则说明成功。
六、启动 HDFS 集群
start-dfs.sh
查看 Web UI:
http://<你的IP>:9870/
示例:
http://192.168.233.128:9870/
七、使用 HDFS 命令
1. 创建目录并上传文件
hdfs dfs -mkdir /home
hdfs dfs -put /home/wc.txt /home
2. 运行 WordCount 示例
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /home/wc.txt /home/output
3. 查看输出结果
hdfs dfs -cat /home/output/*
八、伪分布模式 vs 本地模式
模式 | 部署复杂度 | 是否使用 HDFS | 是否支持分布式特性 |
---|---|---|---|
本地模式 | 简单 | 否 | 否 |
伪分布模式 | 中等 | 是 | 部分支持 |
伪分布模式可帮助开发者理解 HDFS 运行机制,是过渡到集群部署的关键一步。
九、常见问题排查
❌ 启动失败
-
检查配置文件路径、主机名、端口是否正确。
-
查看日志路径:
/opt/installs/hadoop/logs
。
❌ 上传失败
-
检查 HDFS 是否已启动。
-
查看存储路径是否有权限、是否已满。
❌ WordCount 无法运行
-
确认输入路径存在。
-
检查 JAR 包路径是否正确。
🔚 总结
HDFS 伪分布模式搭建并不复杂,却是学习 Hadoop 的必经之路。通过本教程你可以:
-
快速搭建本地 HDFS 环境;
-
了解核心配置与启动机制;
-
掌握基本的 HDFS 操作与 MapReduce 程序运行方式。
如果你对 Hadoop 感兴趣,不妨动手试一试,有任何问题也欢迎留言交流!
✅ 如果本文对你有帮助,欢迎点赞 + 收藏 + 关注,后续会分享更多大数据、分布式系统相关内容!
你希望我再为你补充哪些部分,例如 HA 配置、YARN 资源调度、MapReduce 原理?