Linux 上 HDFS 读写性能优化实操指南
一 硬件与操作系统层优化
blockdev --setra 2048 /dev/sdX。ulimit -n 65536、ulimit -u 65536,避免 “Too many open files”。二 HDFS 关键配置优化
<property>
<name>dfs.blocksize</name>
<value>268435456</value> <!-- 256MB -->
</property>
三 网络与 Linux 内核参数
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sudo sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"
sudo sysctl -w net.core.somaxconn=65535
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=65535
四 应用与作业层优化
<property>
<name>mapreduce.output.fileoutputformat.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
yarn.nodemanager.resource.memory-mb、yarn.scheduler.minimum-allocation-mb/maximum-allocation-mb),并匹配 Map/Reduce 任务内存 与 JVM 堆(如 mapreduce.map.java.opts、mapreduce.reduce.java.opts),避免 OOM 与过度调度开销。五 数据布局与运维实践