在 CentOS 上给 HDFS 扩容,通常不是“直接扩 HDFS”,而是先扩容底层存储(磁盘 / 数据节点),再让 HDFS 识别并使用。下面按常见场景给你一套清晰做法。
适合:集群规模扩大
适合:单机磁盘不够
新 CentOS 机器:
vi /etc/hosts
# 所有节点都要能互相解析
从 NameNode 到新节点:
ssh-keygen
ssh-copy-id hadoop@newnode
scp -r $HADOOP_HOME newnode:$HADOOP_HOME
vi $HADOOP_HOME/etc/hadoop/workers
# 加入新节点
newnode
hdfs --daemon start datanode
hdfs dfsadmin -report
能看到新节点即成功。
fdisk -l
mkfs.xfs /dev/sdb
mkdir /data2
mount /dev/sdb /data2
vi /etc/fstab
/dev/sdb /data2 xfs defaults 0 0
vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.datanode.data.dir</name>
<value>/data1/dfs,/data2/dfs</value>
</property>
hdfs --daemon stop datanode
hdfs --daemon start datanode
hdfs dfsadmin -report
start-balancer.sh -threshold 10
或:
hdfs balancer -threshold 10
如果你愿意,可以告诉我:
我可以给你更精确的命令和配置。