Auf Google Dataproc, fragte ich mich, wie die Funken Einstellungen bestimmt sind? In meinem Fall bin mit mir einen 3 Knoten n1-Standard-4-Cluster und der automatisch erzeugen Funken defaults.conf sieht wie folgt aus:funken Standardeinstellungen auf dataproc, insbesondere spark.yarn.am.memory
# User-supplied properties.
#Fri Dec 16 12:01:47 UTC 2016
spark.yarn.am.memoryOverhead=558
spark.executor.memory=5586m
spark.executor.cores=2
spark.driver.memory=3840m
spark.yarn.executor.memoryOverhead=558
spark.driver.maxResultSize=1920m
spark.yarn.am.memory=5586m
Ich frage mich, warum die Config so eingestellt ist, vor allem, warum Funken .yarn.am.memory ist so hoch eingestellt? Soweit ich weiß, wird diese Einstellung nur im Client-Modus wirksam, in dem der Treiber auf dem sendenden Computer (Master) ausgeführt wird. Außerdem ist AM "nur" dafür zuständig, Ressourcen für die Arbeitsprozesse anzufordern und diese zu koordinieren. Warum sollte mein Gedächtnis so hoch sein? In meinem Szenario bedeutet diese Standardeinstellung, dass ich nur einen Spark-Prozess im Client-Modus starten kann, da für einen zweiten AM-Tag einfach kein RAM im Cluster verfügbar ist. (Dies ist tatsächlich, was ich beobachtet habe und warum ich in die Config in erster Linie schaute).
Also noch einmal, meine Frage: Wie entscheidet das Dataproc-Startup-Skript, wie diese Werte gesetzt werden, was ist der Grund dafür und warum sollte am.memory speziell so hoch sein?