CentOS HDFS集群性能優化策略
HADOOP_NAMENODE_OPTS
中調整-Xmx
參數);DataNode增加內存可提升數據緩存和網絡傳輸效率。ulimit -n 65535
;永久生效需編輯/etc/security/limits.conf
(添加* soft nofile 65535; * hard nofile 65535
)和/etc/pam.d/login
文件。/etc/sysctl.conf
,添加net.ipv4.tcp_tw_reuse = 1
(復用TIME_WAIT連接)、net.core.somaxconn = 65535
(最大連接隊列長度)、net.ipv4.ip_local_port_range = 1024 65535
(可用端口范圍),執行sysctl -p
生效。noop
調度器(減少調度開銷),HDD設備使用deadline
調度器(提升低延遲性能);修改路徑為/sys/block/{device}/queue/scheduler
。noatime,nodiratime
選項(減少文件訪問時間記錄的性能損耗)。dfs.block.size
(如MapReduce任務用128M~256M,小文件場景可適當減小至64M),平衡讀取效率和數據本地化難度。dfs.replication
(熱數據用3副本,冷數據用2副本),平衡可靠性和存儲/網絡成本。dfs.namenode.handler.count
(如20~50,提升NameNode并發處理能力)和dfs.datanode.handler.count
(如30~80,提升DataNode數據傳輸并發能力)。dfs.client.read.shortcircuit
為true
(減少客戶端與DataNode間的網絡跳轉,降低延遲)。mapreduce.map.output.compress
為true
、mapreduce.map.output.compress.codec
為org.apache.hadoop.io.compress.SnappyCodec
,減少網絡傳輸和存儲占用。Hadoop Archive
工具打包為HAR文件)或數據采集時直接生成大文件減少小文件數量。dfs.datanode.balance.bandwidthPerSec
調整數據均衡帶寬。hadoop jar testdfsio.jar -write -nrFiles 100 -fileSize 100M
測試寫入性能,-read
測試讀取性能),評估優化效果并調整參數。