Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用multiple-Xmx选项启动的Java守护进程(hadoop)_Java_Hadoop - Fatal编程技术网

使用multiple-Xmx选项启动的Java守护进程(hadoop)

使用multiple-Xmx选项启动的Java守护进程(hadoop),java,hadoop,Java,Hadoop,在我正在使用但没有管理员权限的hadoop集群上,我看到JobTracker、TaskTracker和DataNode的hadoop守护进程是使用两次指定的-Xmx选项启动的。差不多 /usr/java/default/bin/java -Dproc_datanode -Xmx1000m ... -Xmx128m ... 现在,在这种情况下,哪个选项优先?是两个中的最大值还是第一个还是最后一个 这可能不是特定于hadoop的,只是在本文中遇到了它,所以提到了它。正如@fge所建议的,我用一个独

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

/usr/java/default/bin/java -Dproc_datanode -Xmx1000m ... -Xmx128m ...
现在,在这种情况下,哪个选项优先?是两个中的最大值还是第一个还是最后一个


这可能不是特定于hadoop的,只是在本文中遇到了它,所以提到了它。

正如@fge所建议的,我用一个独立的java程序测试了它,主要方法如下

public static void main(String[] args){
    long mem = Runtime.getRuntime().maxMemory();
    System.out.println("Max mem="+mem/(1024*1024) + "m");       
}
并且推出了多个-Xmx选项,它似乎正在选择上一个。例如

java-Xmx100m-Xmx20m-Xmx400m
程序输出为
Max mem=395m

问得好。。。你应该向管理员报告。如果你想自己测试,可以使用
Runtime.getRuntime().maxMemory()
?我有过,但他们还没有解决。感谢@fge的建议,我尝试过,它似乎选择了最后一个选项。一旦SO允许,我会发布一个详细的答案。这个特定的调用并不能证明它没有选择max…我可以确认它选择了最后一个值,使用
-Xmx16384m-Xmx16384m-Xmx3072m
我得到了max mem=2731m