Ich habe einen Knoten mit 5 Arbeiter Knoten mit jeweils 6 GB Speicher (Spark Executor Speicher ist auf 4608 GB eingestellt).Wie viel Speicher ist für zwischengespeicherte RDDs reserviert?
Ich habe nicht mehr viel Speicher, mit Spark erzählte mir, dass einer meiner Executors versuchte, mehr als 5.0 GB Speicher zu verwenden. Wenn jeder Executor 5 GB Speicher bekommt, dann sollte ich insgesamt 25 GB Speicher zwischen meinem gesamten Cluster haben.
ExecutorLostFailure (executor 4 exited caused by one of the running tasks)
Reason: Container killed by YARN for exceeding memory limits. 5.0 GB of 5.0
GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead.
Zu Beginn meiner Funken Anwendung, wenn ich bei einem meiner RDDs in der Registerkarte Speicher aussehen (es ist die einzige rdd im Cache an dieser Stelle), ich sehe:
RDD Name Storage Level Cached Partitions Fraction Cached Size in Memory Size on Disk
myRDD Memory Serialized 1x Replicated 20 100% 3.2 GB 0.0 B
Host On Heap Memory Usage Off Heap Memory Usage Disk Usage
Node 1 643.5 MB (1931.3 MB Remaining) 0.0 B (0.0 B Remaining) 0.0 B
Master 0.0 B (366.3 MB Remaining) 0.0 B (0.0 B Remaining) 0.0 B
Node 2 654.8 MB (1920.0 MB Remaining) 0.0 B (0.0 B Remaining) 0.0 B
Node 3 644.2 MB (1930.6 MB Remaining) 0.0 B (0.0 B Remaining) 0.0 B
Node 4 656.2 MB (1918.6 MB Remaining) 0.0 B (0.0 B Remaining) 0.0 B
Node 5 652.4 MB (1922.4 MB Remaining) 0.0 B (0.0 B Remaining) 0.0 B
Dies scheint zu zeigen, dass jeder Knoten nur etwa 2,5 GB verfügbaren Arbeitsspeicher hat. Die Speicherregisterkarte wird auch nie annähernd 25 GB von zwischengespeicherten RDDs anzeigen, bevor meine Spark-Anwendung einen Speichermangelfehler erhält.
Wie kann ich herausfinden, wie viel Speicher für zwischengespeicherte RDDs reserviert ist?