CentOS 上 HDFS 性能调优方法
一 操作系统与内核优化
* soft nofile 655360、* hard nofile 655360session required pam_limits.so,确保登录会话生效。net.core.somaxconn = 65535、net.ipv4.tcp_tw_reuse = 1、net.ipv4.ip_local_port_range = 1024 65535sysctl -p 使配置生效。echo never > /sys/kernel/mm/transparent_hugepage/enabled二 HDFS 关键配置参数
<property>
<name>dfs.blocksize</name>
<value>256M</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>40</value>
</property>
<property>
<name>dfs.datanode.handler.count</name>
<value>60</value>
</property>
<property>
<name>dfs.client.read.shortcircuit</name>
<value>true</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data1/hdfs,/data2/hdfs</value>
</property>
<property>
<name>net.topology.script.file.name</name>
<value>/etc/hadoop/conf/topology.sh</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>60</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>10</value>
</property>
三 工作负载与数据布局优化
mapreduce.map.output.compress=true、mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec四 压测验证与监控
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 128MB五 实施步骤与注意事项
-Xmx/-Xms),并结合 jmap -heap 与 GC 日志持续观察与回退。