HDFS在CentOS上的性能调优指南
一 操作系统与内核优化
* soft nofile 655360、* hard nofile 655360session required pam_limits.soulimit -n 65535fs.file-max = 131072net.core.somaxconn = 65535net.ipv4.tcp_tw_reuse = 1net.ipv4.ip_local_port_range = 1024 65535sysctl -pecho never > /sys/kernel/mm/transparent_hugepage/enabled二 HDFS核心参数调优
dfs.namenode.handler.count(如:20–30,视 NN 内存与 CPU 调整)dfs.datanode.handler.count(如:30 起)dfs.client.read.shortcircuit=true(需确保短路本地库与权限配置正确)fs.trash.interval=60、fs.trash.checkpoint.interval=10-Xmx4G -Xms2G,结合节点内存与GC策略调整)mapreduce.map.output.compress=truemapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec三 存储与网络硬件建议
四 压测与监控闭环
hadoop jar /path/to/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MBhadoop jar /path/to/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -read -nrFiles 10 -fileSize 128MBjps 检查 NameNode/DataNode;核对 fs.defaultFS 等核心配置五 快速参考配置清单
* soft/hard nofile 655360fs.file-max=131072、net.core.somaxconn=65535、net.ipv4.tcp_tw_reuse=1、net.ipv4.ip_local_port_range=1024 65535noatime,nodiratimedfs.blocksize=256M(或 128M)dfs.replication=3dfs.namenode.handler.count=20–30dfs.datanode.handler.count=30dfs.client.read.shortcircuit=truefs.trash.interval=60、fs.trash.checkpoint.interval=10mapreduce.map.output.compress=true、SnappyCodecHADOOP_NAMENODE_OPTS="-Xmx4G -Xms2G"、HDFS_DATANODE_OPTS="-Xmx4G -Xms2G"