使用多个-Xmx选项启动的Java守护程序(hadoop)

时间:2014-02-28 12:30:45

标签: java hadoop

在我正在使用的hadoop集群上,但没有管理员权限,我看到JobTracker,TaskTracker和DataNode的hadoop守护进程是在指定两次的-Xmx选项的情况下启动的。像

这样的东西
/usr/java/default/bin/java -Dproc_datanode -Xmx1000m ... -Xmx128m ...

现在,在这种情况下哪个选项优先?它是两个中的最大值还是最后一个或最后一个?

这可能不是特定于hadoop,只是在这个上下文中遇到它所以提到它。

1 个答案:

答案 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