1. 前置準備:安裝與配置Hadoop基礎環境
在CentOS上實現HDFS資源管理前,需完成Hadoop的安裝與環境配置。首先安裝Java(Hadoop依賴Java環境)、配置SSH免密登錄(確保節點間無密碼通信);接著下載并解壓Hadoop安裝包,編輯/etc/profile
文件添加Hadoop環境變量(如HADOOP_HOME
、PATH
),執行source /etc/profile
使變量生效。這些步驟是HDFS資源管理的基礎。
2. 核心配置:HDFS與YARN資源管理參數設置
HDFS的資源管理依賴core-site.xml
、hdfs-site.xml
和yarn-site.xml
三個核心配置文件:
fs.defaultFS
,如hdfs://namenode-host:8020
),指定Hadoop臨時目錄(hadoop.tmp.dir
)。dfs.namenode.name.dir
)、DataNode存儲路徑(dfs.datanode.data.dir
)、數據塊副本數(dfs.replication
,默認3,可根據集群規模調整)及數據塊大?。?code>dfs.blocksize,默認128MB,大文件建議256MB)。yarn.resourcemanager.hostname
)、NodeManager輔助服務(yarn.nodemanager.aux-services
,需設置為mapreduce_shuffle
以支持MapReduce任務)、NodeManager資源限制(yarn.nodemanager.resource.memory-mb
為物理內存總量,yarn.nodemanager.resource.cpu-vcores
為CPU核心數)。3. 資源調度:YARN調度器配置
YARN是HDFS資源管理的核心調度框架,需通過yarn-site.xml
配置調度器類型及資源分配策略:
CapacityScheduler
(支持多租戶資源配額)或FairScheduler
(公平分配資源),通過yarn.resourcemanager.scheduler.class
參數指定。yarn.scheduler.minimum-allocation-mb
為單個容器最小內存,默認1024MB;yarn.scheduler.maximum-allocation-mb
為單個容器最大內存,默認8192MB;同理可配置vcores
參數)。4. 權限與配額:精細化資源管控
hdfs dfs -chmod
(修改文件權限,如755
)、hdfs dfs -chown
(修改文件所有者,如hdfs:hadoop
)命令管理;支持更精細的ACL(訪問控制列表),通過hdfs dfs -setfacl
(添加ACL規則,如user:user1:rwx
)和hdfs dfs -getfacl
(查看ACL規則)命令配置。hdfs dfsadmin
命令限制用戶/目錄的資源使用:-setQuota -n user:username:1000
(限制用戶username
的文件數量不超過1000個)、-setSpaceQuota -n user:username:1G
(限制用戶username
的目錄存儲空間不超過1GB)。5. 監控與維護:資源狀態跟蹤
hdfs dfsadmin -report
命令查看DataNode數量、磁盤使用情況、數據塊分布等信息;使用yarn node -list
命令查看NodeManager的運行狀態。http://resourcemanager-host:8088
)實時監控集群資源使用情況(內存、CPU、容器數量)、應用程序運行狀態及歷史記錄。6. 高級優化:提升資源利用率
COLD
、WARM
、HOT
)根據數據訪問頻率分類存儲,將冷數據遷移至低成本存儲介質(如HDD),減少高成本存儲(如SSD)的占用。hdfs dfsadmin -allowSnapshot
創建快照目錄,hdfs dfs -createSnapshot
生成快照)功能快速備份數據;數據丟失時可通過快照、編輯日志或DistCp(分布式復制工具)恢復。Har
歸檔、CombineFileInputFormat
)減少NameNode的內存壓力。