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