在 CentOS 环境下对 HDFS 扩容,通常分为 横向扩容(加 DataNode) 和 纵向扩容(给已有节点加磁盘) 两种方式。下面按常见场景说明。
在新 CentOS 节点上:
# 示例
hostnamectl set-hostname hadoop-datanode3
从已有节点拷贝 Hadoop 目录:
scp -r /opt/hadoop root@newnode:/opt/
确保以下配置一致:
core-site.xmlhdfs-site.xmlworkers(或 slaves)<!-- hdfs-site.xml 示例 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/data1/dfs,/data2/dfs</value>
</property>
hdfs --daemon start datanode
hdfs dfsadmin -report
看到新节点即扩容成功。
fdisk -l
mkfs.ext4 /dev/sdb
mkdir /data2/dfs
mount /dev/sdb /data2/dfs
写入 /etc/fstab 实现开机挂载。
<property>
<name>dfs.datanode.data.dir</name>
<value>/data1/dfs,/data2/dfs</value>
</property>
hdfs --daemon stop datanode
hdfs --daemon start datanode
新节点加入后,旧节点数据不会自动迁移,需要执行 Balancer:
hdfs balancer -threshold 10
threshold:节点间磁盘使用率差值阈值(%)HDFS 扩容 不需要扩容 NameNode 磁盘,除非:
此时需:
新节点不显示
workers 文件容量没变化
如果你能告诉我:
我可以给你更精确的命令。