Hadoop配置namenode和datanode节点内存大小

一般来说datanode和namenode要占据机器的一半内存资源

1.编辑hadoop-env.sh文件

vim etc/hadoop/hadoop-env.sh

2.修改namenode内存配置(默认是1GB)

export HADOOP_NAMENODE_OPTS="-Xmx3G -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:+PrintTenuringDistribution"
export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS"

如果HADOOP_NAMENODE_OPTS内存大小改变了HADOOP_SECONDARYNAMENODE_OPTS参数也要跟着变

export HADOOP_SECONDARYNAMENODE_OPTS="-Xmx3G -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:+PrintTenuringDistribution"
export HADOOP_SECONDARYNAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_SECONDARYNAMENODE_OPTS"

NameNode堆内存使用率超过阈值:https://support.huawei.com/enterprise/zh/doc/EDOC1100062346/6fa45eb5

  • 文件对象数量达到10,000,000,则JVM参数建议配置为:-Xms6G -Xmx6G -XX:NewSize=512M -XX:MaxNewSize=512M
  • 文件对象数量达到20,000,000,则JVM参数建议配置为:-Xms12G -Xmx12G -XX:NewSize=1G -XX:MaxNewSize=1G
  • 文件对象数量达到50,000,000,则JVM参数建议配置为:-Xms32G -Xmx32G -XX:NewSize=3G -XX:MaxNewSize=3G
  • 文件对象数量达到100,000,000,则JVM参数建议配置为:-Xms64G -Xmx64G -XX:NewSize=6G -XX:MaxNewSize=6G
  • 文件对象数量达到200,000,000,则JVM参数建议配置为:-Xms96G -Xmx96G -XX:NewSize=9G -XX:MaxNewSize=9G
  • 文件对象数量达到300,000,000,则JVM参数建议配置为:-Xms164G -Xmx164G -XX:NewSize=12G -XX:MaxNewSize=12G

3.修改datanode内存配置

export HADOOP_DATANODE_OPTS="-Xmx3G -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80 -XX:+CMSParallelRemarkEnabled -XX:+PrintTenuringDistribution"
export HADOOP_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS $HADOOP_DATANODE_OPTS"

4.参数配置说明
-Xmx3G 堆内存设置为3G
-XX:+UseParNewGC 设置新生代内存收集为并行收集
-XX:+UseConcMarkSweepGC 使用CMS垃圾收集器,来为老年代内存并行收集
-XX:CMSInitiatingOccupancyFraction=80 设置Old区当对象存满80%的时候触发Full GC
-XX:+CMSParallelRemarkEnabled 并行运行最终标记阶段,加快最终标记的速度,降低标记停顿
-XX:+PrintTenuringDistribution 显示每次Minor GC时Survivor区中各个年龄段的对象的大小

如果觉得我的文章对你有用,请随意赞赏