sysctl
命令增大TCP接收/發送緩沖區,提升網絡吞吐量。例如:sysctl -w net.core.rmem_max=16777216 # 接收緩沖區最大值
sysctl -w net.core.wmem_max=16777216 # 發送緩沖區最大值
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216" # TCP接收緩沖區分段
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216" # TCP發送緩沖區分段
echo 1 > /proc/sys/net/ipv4/tcp_fastopen # 啟用TFO
sysctl -w net.ipv4.tcp_congestion_control=bbr # 使用BBR擁塞控制
tcp_fin_timeout
縮短TIME_WAIT狀態保持時間(默認60秒),釋放網絡資源:sysctl -w net.ipv4.tcp_fin_timeout=30 # 設置為30秒
/etc/security/limits.conf
,提升HDFS進程(如NameNode、DataNode)的文件描述符上限,避免高并發時資源耗盡:* soft nofile 65535
* hard nofile 65535
dfs.client.read.shortcircuit=true
及dfs.domain.socket.path
(指定Unix域套接字路徑)。<property>
<name>dfs.locality.wait</name>
<value>10s</value>
</property>
io.compression.codecs
指定支持的壓縮編解碼器:<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.SnappyCodec,org.apache.hadoop.io.compress.DefaultCodec</value>
</property>
dfs.locality.wait
參數讓計算任務優先在數據所在節點執行,避免跨節點傳輸。若數據未本地化,可等待指定時間后再從遠程節點拉取。iftop
(查看實時帶寬占用)、nload
(監控網絡流量趨勢)、iptraf
(分析網絡連接)等工具,定位網絡瓶頸(如某節點帶寬占用過高)。以上策略需根據集群規模、數據特性(如訪問模式、數據量)及業務需求(如實時性、可靠性)組合使用,并通過監控工具驗證優化效果,持續調整參數以達到最佳網絡傳輸性能。