HDFS動態擴展主要分為橫向擴展(增加新節點)和縱向擴展(提升現有節點硬件規格)。其中,橫向擴展是生產環境最常用的方式,通過添加DataNode節點線性增加存儲容量和計算能力,不影響現有服務;縱向擴展則通過增加現有節點的硬盤容量、內存等硬件資源擴展,需重啟節點,適用于節點硬件升級場景。
橫向擴展是通過添加新節點到集群,實現存儲容量的動態增長,具體步驟如下:
/etc/hosts
文件,添加新節點主機名與IP映射,并同步至所有節點;hadoop
安裝包(不含hadoop.tmp.dir
數據目錄)同步至新節點,保持core-site.xml
、hdfs-site.xml
等核心配置一致;$HADOOP_HOME/etc/hadoop/workers
文件中,添加新節點的主機名(每行一個),用于Hadoop一鍵啟停腳本識別。hdfs --daemon start datanode
命令,啟動DataNode進程;http://namenode-ip:9870
)或命令hdfs dfsadmin -report
,查看新節點是否已加入集群(狀態為“Live”)。新節點加入后,集群數據未自動分布,需執行數據均衡操作:
hdfs dfsadmin -setBalancerBandwidth 104857600
(單位:字節/秒,此處設置為100MB/s);hdfs balancer -threshold 5
(-threshold
為磁盤使用率差異閾值,超過5%則觸發均衡),等待均衡完成(通常需數小時,取決于數據量)。縱向擴展是通過提升現有節點的硬件規格擴展容量,以增加DataNode硬盤容量為例,具體步驟如下:
/dev/sdb
),重啟機器以識別新設備;fdisk /dev/sdb
命令分區(如創建/dev/sdb1
),格式化為ext4文件系統(mkfs.ext4 /dev/sdb1
);/mnt/newdisk
),執行mount /dev/sdb1 /mnt/newdisk
,并通過df -h
驗證掛載結果;/etc/fstab
文件,添加/dev/sdb1 /mnt/newdisk ext4 defaults 0 0
,確保重啟后自動掛載。$HADOOP_HOME/etc/hadoop/hdfs-site.xml
文件中,修改dfs.datanode.data.dir
屬性,添加新掛載目錄(如/data1,/mnt/newdisk
);hadoop-daemon.sh restart datanode
(或systemctl restart hadoop-datanode
,取決于安裝方式)重啟DataNode,使配置生效。topology.script.file.name
屬性),確保數據副本分布在不同機架,避免單點故障;dfs.replication
配置(默認3),根據集群規模調整,避免過多副本占用存儲;Used Space%
(已用空間比例)、Remaining
(剩余空間)、DataNode數量
等指標,通過Ambari、Ganglia等工具實時監控;