下面分 “单机伪分布式” 和 “完全分布式” 两种常见场景,系统以 CentOS 7/8 为例,说明 HDFS 的基本配置流程。假设你已经安装好 JDK 和 Hadoop。
java -version
推荐 JDK 8(Hadoop 2.x/3.x 常用)
useradd hadoop
passwd hadoop
su - hadoop
hostnamectl set-hostname master
/etc/hosts 示例:
192.168.1.10 master
192.168.1.11 slave1
192.168.1.12 slave2
编辑 ~/.bashrc 或 /etc/profile:
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
生效:
source ~/.bashrc
Hadoop 配置文件位于:
$HADOOP_HOME/etc/hadoop/
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/datanode</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/datanode</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>master:9870</value>
</property>
</configuration>
vim $HADOOP_HOME/etc/hadoop/workers
内容:
master
slave1
slave2
Hadoop 2.x 文件名是
slaves
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
测试:
ssh slave1
⚠️ 只能执行一次
hdfs namenode -format
start-dfs.sh
检查进程:
jps
应看到:
hdfs dfs -ls /
hdfs dfs -mkdir /test
hdfs dfs -put file.txt /test
Web UI:
http://master:9870
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
或修改:
vim /etc/selinux/config
SELINUX=disabled
chown -R hadoop:hadoop /data/hadoop
| 项目 | 说明 |
|---|---|
| 核心配置 | core-site.xml、hdfs-site.xml |
| 节点配置 | workers |
| 启动命令 | start-dfs.sh |
| 默认端口 | 9870(Web)、9000(HDFS) |
如果你需要:
可以直接告诉我你的 Hadoop 版本和节点数量。