HDFS在Ubuntu上的内存设置指南
一 配置思路与快速建议
二 关键参数与推荐值
| 参数 | 作用 | 常见取值/建议 |
|---|---|---|
| HADOOP_HEAPSIZE | 全局默认堆大小(若未对单角色单独设置,则作为默认值) | 如未单独设置,默认约1000 MB |
| HADOOP_NAMENODE_OPTS / HDFS_NAMENODE_OPTS | NameNode堆与JVM参数 | 如:-Xmx4g -Xms2g(生产常见4–8 GB起步) |
| HADOOP_DATANODE_OPTS | DataNode堆与JVM参数 | 如:-Xmx2g -Xms1g(通常1–4 GB) |
| HADOOP_SECONDARYNAMENODE_OPTS | Secondary NameNode堆 | 如:-Xmx2g -Xms1g |
| HADOOP_CLIENT_OPTS | 客户端(如hadoop fs)堆 | 如:-Xmx1g -Xms512m |
| dfs.blocksize | HDFS块大小 | 默认128MB;大文件/高吞吐可至256MB或更高 |
| dfs.replication | 副本数 | 默认3;可靠性优先可保持,带宽/容量紧张可降低 |
| dfs.namenode.handler.count | NameNode处理线程数 | 默认较小;可按并发调大(如20+) |
| dfs.datanode.handler.count | DataNode处理线程数 | 可按并发调大(如20+) |
三 配置步骤与示例
# 全局默认堆(可选,若单角色已设置,可不配)
# export HADOOP_HEAPSIZE=
# NameNode
export HADOOP_NAMENODE_OPTS="-Xmx4g -Xms2g -Dhadoop.security.logger=INFO,RFAS -Dhdfs.audit.logger=INFO,NullAppender"
# DataNode
export HADOOP_DATANODE_OPTS="-Xmx2g -Xms1g -Dhadoop.security.logger=ERROR,RFAS"
# Secondary NameNode
export HADOOP_SECONDARYNAMENODE_OPTS="-Xmx2g -Xms1g -Dhadoop.security.logger=INFO,RFAS -Dhdfs.audit.logger=INFO,NullAppender"
# 客户端
export HADOOP_CLIENT_OPTS="-Xmx1g -Xms512m"
<configuration>
<property>
<name>dfs.blocksize</name>
<value>268435456</value> <!-- 256MB -->
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>21</value>
</property>
<property>
<name>dfs.datanode.handler.count</name>
<value>21</value>
</property>
</configuration>
jps
jmap -heap $(jps | grep NameNode | awk '{print $1}')
四 容量规划与常见陷阱