在 Linux 环境下对 HDFS 进行扩容,通常分为 横向扩容(加 DataNode) 和 纵向扩容(加磁盘) 两种场景。下面按实际运维流程说明。
适用场景:集群容量不足,新增机器
从已有节点拷贝:
scp -r $HADOOP_HOME/etc/hadoop/* newnode:$HADOOP_HOME/etc/hadoop/
确保以下配置一致:
core-site.xmlhdfs-site.xmlworkers(或 slaves)hdfs --daemon start datanode
hdfs dfsadmin -report
看到新 DataNode 即成功。
mkfs.ext4 /dev/sdb
mkdir /data2
mount /dev/sdb /data2
<property>
<name>dfs.datanode.data.dir</name>
<value>/data1/dfs,datanode,/data2/dfs,datanode</value>
</property>
hdfs --daemon stop datanode
hdfs --daemon start datanode
新节点加入后,HDFS 不会自动均衡:
hdfs balancer
可选参数:
hdfs balancer -threshold 5
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
hdfs dfs -df -h
workers 文件未配置dfs.datanode.data.dirHDFS 扩容 = 加节点 / 加磁盘 + 重启 DataNode + 执行 balancer
如果你愿意,可以告诉我:
我可以给你一份 针对你环境的扩容步骤。