在我正在使用的hadoop集群上,但没有管理员权限,我看到JobTracker,TaskTracker和DataNode的hadoop守护进程是在指定两次的-Xmx选项的情况下启动的。像
这样的东西/usr/java/default/bin/java -Dproc_datanode -Xmx1000m ... -Xmx128m ...
现在,在这种情况下哪个选项优先?它是两个中的最大值还是最后一个或最后一个?
这可能不是特定于hadoop,只是在这个上下文中遇到它所以提到它。
答案 0 :(得分:9)
正如@fge所建议的那样,我使用一个独立的java程序测试了它,使用以下主要方法
public static void main(String[] args){
long mem = Runtime.getRuntime().maxMemory();
System.out.println("Max mem="+mem/(1024*1024) + "m");
}
并使用多个-Xmx选项启动它,它似乎正在拾取最后一个。 E.g。
java -Xmx100m -Xmx20m -Xmx400m
程序输出是
Max mem=395m