我的一个 hadoop 集群的名称节点上的 JVM 堆最大值配置为 8GB。当我使用 JMX 监控 JVM 时,报告的最大值不断波动,如附图所示。
http://highlycaffeinated.com/assets/images/heapmax.png http://highlycaffeinated.com/assets/images/heapmax.png
我只在我的一个(最活跃的)hadoop 集群上看到这种行为。在其他集群上,报告的最大值保持固定为配置的值。任何想法为什么报告的最大值会改变?
Update:
java版本是“1.6.0_20”
堆最大值在 hadoop-env.sh 中使用以下行设置:
export HADOOP_NAMENODE_OPTS="-Xmx8G -Dcom.sun.management.jmxremote.port=8004 $JMX_SHARED_PROPS"
ps 显示:
hadoop 27605 1 99 Jul30 ? 11-07:23:13 /usr/lib/jvm/jre/bin/java -Xmx1000m -Xmx8G
更新2:
添加了-Xms8G
昨晚切换到启动命令行:
export HADOOP_NAMENODE_OPTS="-Xms8G -Xmx8G -Dcom.sun.management.jmxremote.port=8004 $JMX_SHARED_PROPS"
如下图所示,尽管模式似乎发生了变化,但最大值仍然在变化。
http://highlycaffeinated.com/assets/images/heapmax2.png http://highlycaffeinated.com/assets/images/heapmax2.png
更新3:
这是一个新图表,还显示了非堆最大值,该最大值保持不变:
http://highlycaffeinated.com/assets/images/heapmax3.png http://highlycaffeinated.com/assets/images/heapmax3.png