在 CentOS 上配置 HDFS 内存,通常是指调整 Hadoop 各进程(NameNode / DataNode / SecondaryNameNode 等)的 JVM 堆内存,而不是操作系统层面的内存。下面按常见场景说明。
主要配置文件在:
$HADOOP_HOME/etc/hadoop/
关键文件:
hadoop-env.shhdfs-site.xml(少量相关)yarn-site.xml(如果是 YARN + HDFS)hadoop-env.shvi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
设置 NameNode 堆内存:
export HADOOP_NAMENODE_OPTS="-Xms4g -Xmx4g"
示例:
-Xms2g -Xmx2g-Xms8g -Xmx8g⚠️ NameNode 内存 ≈ 元数据总量
经验值:
1GB 内存 ≈ 100万文件/块
export HADOOP_DATANODE_OPTS="-Xms2g -Xmx2g"
一般 DataNode 不需要太大内存(2–4G 足够)
export HADOOP_SECONDARYNAMENODE_OPTS="-Xms2g -Xmx2g"
export HADOOP_OPTS="-Xmx2g"
free -h
建议:
sysctl vm.swappiness=10
systemctl stop firewalld
setenforce 0
stop-dfs.sh
start-dfs.sh
查看进程内存:
jps
ps -aux | grep NameNode
| 节点 | 堆内存 |
|---|---|
| NameNode | 4–8G |
| DataNode | 2G |
| SecondaryNameNode | 2–4G |
如果你愿意,可以告诉我:
我可以给你一套精准配置方案。