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等命令持续监控集群状态,避免因数据迁移导致性能下降。