在 CentOS 上“改 HDFS 内存”通常有两种理解,我分别说明:
HDFS 的 NameNode / DataNode 都是 Java 进程,内存通过 JVM 堆内存参数 控制。
编辑 Hadoop 环境变量文件(通常在):
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
找到并修改:
export HADOOP_NAMENODE_OPTS="-Xmx4g -Xms4g"
示例:
‑Xmx4g‑Xmx8g同样在 hadoop-env.sh:
export HADOOP_DATANODE_OPTS="-Xmx2g -Xms2g"
可修改:
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
export HADOOP_HEAPSIZE=4096 # 单位 MB
stop-dfs.sh
start-dfs.sh
如果你是指 限制 HDFS 进程占用系统内存:
如果是用 systemd 启动:
vi /usr/lib/systemd/system/hadoop-namenode.service
添加:
MemoryLimit=4G
然后:
systemctl daemon-reload
systemctl restart hadoop-namenode
可用于严格限制,但一般不推荐只为了 HDFS。
jps
jmap -heap <pid>
或:
ps -aux | grep namenode
如果你能告诉我:
我可以给你更精确的配置建议。