下面按从零到可用的思路,说明在 Linux 上配置 HDFS(Hadoop 分布式文件系统) 的常见做法。以 单节点伪分布式(最常用、最易学)为主,并补充完全分布式要点。
java -version
若未安装:
# Ubuntu
sudo apt install openjdk-8-jdk
# CentOS
sudo yum install java-1.8.0-openjdk-devel
配置 JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
useradd hadoop
passwd hadoop
su - hadoop
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 /usr/local/hadoop
配置环境变量:
vi ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc
ssh-keygen -t rsa
ssh-copy-id localhost
测试:
ssh localhost
路径:$HADOOP_HOME/etc/hadoop/
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/datanode</value>
</property>
</configuration>
创建目录:
mkdir -p /usr/local/hadoop/data/namenode
mkdir -p /usr/local/hadoop/data/datanode
hdfs namenode -format
✅ 成功标志:
Storage directory ... has been successfully formatted
start-dfs.sh
检查进程:
jps
应看到:
hdfs dfs -mkdir /test
hdfs dfs -put file.txt /test
hdfs dfs -ls /
Web 界面:
http://localhost:9870
core-site.xml
<value>hdfs://namenode:9000</value>
hdfs-site.xml
<property>
<name>dfs.namenode.rpc-address</name>
<value>namenode:9000</value>
</property>
workers 文件
datanode1
datanode2
| 问题 | 原因 |
|---|---|
| NameNode 起不来 | 没格式化 / 目录权限 |
| DataNode 不显示 | clusterID 不一致 |
| 端口不通 | 防火墙未关 |
systemctl stop firewalld
如果你需要:
可以直接告诉我你的使用场景。