CentOS上优化HDFS存储效率的实用方案
一 系统层优化
* soft nofile 655360、* hard nofile 655360),必要时在 /etc/pam.d/login 启用 pam_limits.so;验证用 ulimit -n。net.core.somaxconn=4096、net.ipv4.tcp_tw_reuse=1、net.ipv4.ip_local_port_range=1024 65535,执行 sysctl -p 生效。echo never > /sys/kernel/mm/transparent_hugepage/enabled(并确保开机执行)。二 HDFS配置优化
三 存储效率专项策略
hdfs dfsadmin -setQuota、-setSpaceQuota),防止个别业务无限制膨胀。四 验证与监控
hadoop jar /path/to/hadoop-mapreduce-client-jobclient-3.1.3.jar TestDFSIO -write -nrFiles 10 -fileSize 128MBhadoop jar /path/to/hadoop-mapreduce-client-jobclient-3.1.3.jar TestDFSIO -read -nrFiles 10 -fileSize 128MBjps 检查 NameNode/DataNode 进程;hdfs dfsadmin -report 查看 DataNode 状态与机架信息;结合监控关注磁盘使用率、网络带宽、节点负载与作业本地化率。五 参数示例与落地顺序
<property><name>dfs.blocksize</name><value>268435456</value></property>(即 256MB)<property><name>dfs.replication</name><value>2</value></property><property><name>dfs.datanode.data.dir</name><value>/data1/hdfs,/data2/hdfs</value></property><property><name>dfs.datanode.du.reserved</name><value>10737418240</value></property>(预留 10GB)<property><name>dfs.namenode.handler.count</name><value>30</value></property><property><name>dfs.datanode.handler.count</name><value>30</value></property><property><name>fs.trash.interval</name><value>60</value></property><property><name>fs.trash.checkpoint.interval</name><value>10</value></property><property><name>io.file.buffer.size</name><value>131072</value></property>(128KB 缓冲)<property><name>mapreduce.map.output.compress</name><value>true</value></property><property><name>mapreduce.map.output.compress.codec</name><value>org.apache.hadoop.io.compress.SnappyCodec</value></property>