Ubuntu环境下HDFS扩容操作指南
HDFS扩容主要分为**横向扩容(增加DataNode节点)和纵向扩容(提升现有节点硬件规格)**两类,其中横向扩容是分布式系统常用的线性扩展方式,适用于大多数场景。以下是详细操作步骤及注意事项:
hdfs dfsadmin -report
命令确认现有集群的健康状态(如NameNode、DataNode是否正常)、存储容量及节点分布情况。JAVA_HOME
配置正确)。HADOOP_HOME
、PATH
)。fs.defaultFS
指向集群的NameNode地址(如hdfs://namenode-ubuntu:9000
),并添加dfs.namenode.datanode.registration.ip-hostname-check
设置为false
(避免IP与主机名校验问题)。/data/hdfs/datanode
),并设置副本数(dfs.replication
,默认3,可根据需求调整)。core-site.xml
、hdfs-site.xml
、workers
(或slaves
)文件复制到新节点的Hadoop配置目录(如$HADOOP_HOME/etc/hadoop
)。$HADOOP_HOME/sbin/start-dfs.sh
命令,启动DataNode服务。也可单独启动:$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
。hdfs dfsadmin -report
,查看“Live DataNodes”列表,确认新节点已成功加入集群。hdfs balancer
命令,启动数据平衡任务。该命令会将数据从负载高的节点迁移到新节点,确保副本均匀分布。hdfs balancer -status
查看平衡进度(目标是将集群各节点磁盘使用率差异控制在10%以内)。挂载新硬盘:
lsblk
命令查看新硬盘(如/dev/sdb
)。sudo fdisk /dev/sdb
(创建主分区sdb1
,保存退出)。sudo mkfs.ext4 /dev/sdb1
(格式化为ext4文件系统)。/mnt/newdisk
),执行sudo mount /dev/sdb1 /mnt/newdisk
;修改/etc/fstab
文件(添加/dev/sdb1 /mnt/newdisk ext4 defaults 0 0
),实现开机自动挂载。配置HDFS使用新存储:
编辑现有DataNode的hdfs-site.xml
文件,将新挂载目录添加到dfs.datanode.data.dir
属性(用逗号分隔多个目录),例如:
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hdfs/datanode,/mnt/newdisk</value>
</property>
重启DataNode服务使配置生效:$HADOOP_HOME/sbin/hadoop-daemon.sh restart datanode
。
lshw
)查看硬件信息,升级物理CPU或内存(需确保主板支持)。hdfs-site.xml
中的dfs.namenode.handler.count
(NameNode线程池大小,如100)、dfs.datanode.handler.count
(DataNode线程池大小,如100)等参数,优化集群性能。dfs.network.script
配置机架感知)。/data/hdfs/namenode/current
目录)。hdfs dfsadmin -report
、hdfs balancer -status
等命令持续监控集群状态,避免因数据迁移导致性能下降。