2014-02-28 7 views
8

Auf einem Hadoop Cluster, die ich benutze, aber keine Administratorrechte habe, sehe ich, dass die Hadoop-Daemons für JobTracker, TaskTracker und DataNode mit den -Xmx Optionen gestartet werden zweimal angegeben. Etwas wieJava Daemons gestartet mit multiple -Xmx Option (hadoop)

/usr/java/default/bin/java -Dproc_datanode -Xmx1000m ... -Xmx128m ... 

Nun, in diesem Fall, welche Option hat Vorrang? Ist es das Maximum der zwei oder des ersten oder letzten?

Dies ist möglicherweise nicht spezifisch für hadoop, nur in diesem Zusammenhang begegnet es so erwähnen Sie es.

+0

Gute Frage ... Sie dies dem Administrator melden. Wenn Sie selbst testen möchten, benutzen Sie vielleicht 'Runtime.getRuntime(). MaxMemory()'? – fge

+0

Ich habe, aber sie müssen es noch beheben. – acharuva

+0

Danke für den Vorschlag @fge, ich habe es versucht und es scheint die letzte Option zu übernehmen. Ich werde eine detaillierte Antwort veröffentlichen, sobald die SO mir erlaubt. – acharuva

Antwort

7

Wie @fge schlug ich dies mit einem Standalone-Java-Programm getestet, mit den folgenden Hauptverfahren

public static void main(String[] args){ 
    long mem = Runtime.getRuntime().maxMemory(); 
    System.out.println("Max mem="+mem/(1024*1024) + "m");  
} 

und startete es mit mehreren -Xmx Optionen, so scheint es, die letzten Kommissionierung bis zu . Z.B.

java -Xmx100m -Xmx20m -Xmx400m Die Programmausgabe ist Max mem=395m

+0

Dieser spezielle Aufruf beweist nicht, dass er nicht max ... – nafg

Verwandte Themen