在 CentOS 上扩容 HDFS(Hadoop Distributed File System),一般分为 横向扩容(加节点) 和 纵向扩容(加磁盘) 两种场景。下面按常见情况给你一个完整、可操作的说明。
hdfs dfsadmin -report
查看:
hadoop version
不同版本(Hadoop 2.x / 3.x)配置略有差异。
yum install -y java-1.8.0-openjdk
useradd hadoop
passwd hadoop
hostnamectl set-hostname hadoop-datanode3
vi /etc/hosts
192.168.1.10 namenode
192.168.1.11 datanode1
192.168.1.12 datanode2
192.168.1.13 datanode3
ssh-keygen
ssh-copy-id hadoop@datanode3
tar -zxvf hadoop-3.x.x.tar.gz -C /opt/
chown -R hadoop:hadoop /opt/hadoop-3.x.x
core-site.xml<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
hdfs-site.xml<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hdfs/datanode</value>
</property>
workers(Hadoop 3.x)vi $HADOOP_HOME/etc/hadoop/workers
添加:
datanode1
datanode2
datanode3
su - hadoop
$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
或(推荐):
$HADOOP_HOME/bin/hdfs --daemon start datanode
hdfs dfsadmin -report
你会看到:
✅ HDFS 会自动识别新节点,无需重启 NameNode
lsblk
fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
mkdir /data2
mount /dev/sdb1 /data2
永久挂载:
vi /etc/fstab
/dev/sdb1 /data2 ext4 defaults 0 0
hdfs-site.xml<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hdfs/datanode,/data2/hdfs/datanode</value>
</property>
hdfs --daemon stop datanode
hdfs --daemon start datanode
hdfs dfsadmin -report
✅ 容量增加,无需重新格式化
HDFS 不会自动迁移旧数据,只会 新写入的数据 使用新节点。
如需平衡数据:
hdfs balancer
或指定带宽:
hdfs balancer -threshold 10
❌ 不需要
✅ DataNode 动态注册
balancer| 场景 | 方法 |
|---|---|
| 加机器 | 新 DataNode 加入集群 |
| 加磁盘 | 修改 dfs.datanode.data.dir |
| 是否重启 | 否 |
| 是否格式化 | 否 |
如果你愿意,可以告诉我:
我可以给你 针对你集群的精确扩容方案 ✅