HDFS在Ubuntu上的擴容方法
HDFS在Ubuntu上的擴容主要分為**橫向擴容(增加DataNode節點)和縱向擴容(提升現有節點硬件規格)**兩類,其中橫向擴容是分布式系統最常用的線性擴展方式。以下是詳細操作步驟及注意事項:
java -version
驗證);/etc/hosts
文件中(格式:IP 主機名
),確保節點間可通過主機名互相訪問;ssh-keygen -t rsa
),并將公鑰(id_rsa.pub
)復制到新節點的~/.ssh/authorized_keys
中(ssh-copy-id 新節點主機名
),驗證ssh 新節點主機名
無需密碼;sudo ufw disable
)或放行Hadoop相關端口(如NameNode的8020、DataNode的50010等);core-site.xml
、hdfs-site.xml
、mapred-site.xml
、yarn-site.xml
等配置文件復制到新節點的$HADOOP_HOME/etc/hadoop/
目錄下。$HADOOP_HOME/etc/hadoop/
目錄下,編輯workers
文件(舊版本為slaves
),添加新節點的主機名(每行一個),保存后同步該文件到所有NameNode節點;$HADOOP_HOME/sbin/hdfs --daemon start datanode
$HADOOP_HOME/sbin/yarn --daemon start nodemanager
hdfs dfsadmin -refreshNodes # 刷新NameNode節點列表
yarn rmadmin -refreshNodes # 刷新ResourceManager節點列表(YARN環境)
-threshold
參數):hdfs balancer -threshold 10
hdfs balancer -status
hdfs dfsadmin -report
命令查看集群節點列表,確認新節點的State
為Live
(存活狀態);hdfs dfs -put /local/path/test.txt /test/
),然后在新節點上執行hdfs dfs -cat /test/test.txt
,驗證數據是否可正常讀取。fdisk /dev/sdX
)、格式化(mkfs.ext4 /dev/sdX1
)、掛載(mount /dev/sdX1 /data
),并修改/etc/fstab
實現開機自動掛載;dfs.datanode.data.dir
)指向掛載點(如/data
),需先停止DataNode服務(hdfs --daemon stop datanode
),然后使用hdfs dfsadmin -setSpaceQuota
調整配額(單位:字節),最后重啟DataNode服務。dfs.blocksize
從默認128MB調整為256MB或更大(減少NameNode元數據壓力);dfs.replication
(默認3,熱數據可保持3,冷數據可降低至2);dfs.namenode.handler.count
(NameNode線程數,默認10)和dfs.datanode.handler.count
(DataNode線程數,默認10),提升并發處理能力。hdfs dfs -cp
命令復制到本地或其他存儲);core-site.xml
中配置topology.script.file.name
(機架感知腳本),確保數據副本分布在不同機架,避免單點故障;