2016-09-17 11 views
3

Wir betreiben Spark-Treiber und Executoren in Docker-Containern, die von Kubernetes orchestriert werden. Wir möchten die Java-Heap-Größe für sie zur Laufzeit über den Kubernetes-Controller YAML festlegen können.
Welche Spark-Konfiguration muss dafür eingestellt sein? Wenn ich nichts zu tun und Blick auf den gestarteten Prozess über ps -ef, ich sehe:Wie überschreiben Sie die Spark-Java-Heapgröße?

root  639 638 0 00:16 ?  00:00:23 /opt/ibm/java/jre/bin/java -cp /opt/ibm/spark/conf/:/opt/ibm/spark/lib/spark-assembly-1.5.2-hadoop2.6.0.jar:/opt/ibm/spark/lib/datanucleus-api-jdo-3.2.6.jar:/opt/ibm/spark/lib/datanucleus-core-3.2.10.jar:/opt/ibm/spark/lib/datanucleus-rdbms-3.2.9.jar:/opt/ibm/hadoop/conf/ -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=172.17.48.29:2181,172.17.231.2:2181,172.17.47.17:2181 -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=172.17.48.29:2181,172.17.231.2:2181,172.17.47.17:2181 -Dcom.ibm.apm.spark.logfilename=master.log -Dspark.deploy.defaultCores=2 **-Xms1g -Xmx1g** org.apache.spark.deploy.master.Master --ip sparkmaster-1 --port 7077 --webui-port 18080 

Etwas die -Xms und -Xmx Optionen einstellen. Ich habe versucht, SPARK_DAEMON_JAVA_OPTS="-XmsIG -Xms2G" in spark-env.sh Einstellung und bekam:

root  2919 2917 2 19:16 ?  00:00:15 /opt/ibm/java/jre/bin/java -cp /opt/ibm/spark/conf/:/opt/ibm/spark/lib/spark-assembly-1.5.2-hadoop2.6.0.jar:/opt/ibm/spark/lib/datanucleus-api-jdo-3.2.6.jar:/opt/ibm/spark/lib/datanucleus-core-3.2.10.jar:/opt/ibm/spark/lib/datanucleus-rdbms-3.2.9.jar:/opt/ibm/hadoop/conf/ -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=172.17.48.29:2181,172.17.231.2:2181,172.17.47.17:2181 **-Xms1G -Xmx2G** -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=172.17.48.29:2181,172.17.231.2:2181,172.17.47.17:2181 **-Xms1G -Xmx2G** -Dcom.ibm.apm.spark.logfilename=master.log -Dspark.deploy.defaultCores=2 **-Xms1g -Xmx1g** org.apache.spark.deploy.master.Master --ip sparkmaster-1 --port 7077 --webui-port 18080 

Ein Freund

spark.driver.memory 2g

in spark-defaults.conf Einstellung vorgeschlagen, aber die Ergebnisse sahen aus wie das erste Beispiel. Vielleicht wurden die Werte im Befehl ps -ef durch diese Einstellung außer Kraft gesetzt, aber woher sollte ich das wissen? Wenn spark.driver.memory der richtige Override ist, können Sie den Heap min und max auf diese Weise einstellen, oder setzt dies nur den maximalen Wert?

Vielen Dank im Voraus.

+1

Ich glaube, ich habe dich missverstanden. 'SPARK_DAEMON_MEMORY'? – zero323

+0

Das war's! Vielen Dank! – cbarlock

Antwort

Verwandte Themen