Spark - Container läuft über die Grenzen des physischen Speichers hinaus

8

Ich habe einen Cluster aus zwei Arbeiterknoten. Worker_Node_1 - 64 GB RAM Worker_Node_2 - 32 GB RAM

Background Summery: Ich versuche, funke-submit auf yarn-cluster auszuführen, um Pregel auf einem Graphen auszuführen, um die kürzesten Pfaddistanzen von einem Quellknoten zu allen anderen Knoten zu berechnen und die Werte auf der Konsole auszugeben. Experimentieren:

  1. Bei Small Graph mit 15 Scheitelpunkten wird der letzte Status der Anwendung abgeschlossen: SUCCEEDED
  2. Mein Code funktioniert perfekt und druckt den kürzesten Abstand für 241 Vertices-Graphen für einen einzelnen Vertex als Quellknoten, aber es gibt ein Problem.

Problem: Wenn ich in die Log-Datei einchecke, wird die Aufgabe in 4 Minuten und 26 Sekunden vollständig erfolgreich abgeschlossen, aber immer noch auf dem Terminal zeigt sie den Anwendungsstatus als Running und nach ca. 12 weiteren an Die Ausführung der Minuten-Task endet mit der Angabe -

%Vor%

Dinge, die ich versucht habe:

  1. yarn.schedular.maximum-allocation-mb - 32GB
  2. mapreduce.map.memory.mb = 2048 (Zuvor war es 1024)
  3. Versucht, zu variieren - Treiberspeicher bis zu 24g

Könnten Sie bitte mehr Farbe darauf legen, wie ich den Resource Manager so konfigurieren kann, dass auch Large Size Graphs (& gt; 300K Vertices) verarbeitet werden können? Danke.

    
aditya 17.11.2015, 14:34
quelle

2 Antworten

2

Je mehr Daten verarbeitet werden, desto mehr Speicher wird von jeder Spark-Task benötigt. Und wenn Ihr Executor zu viele Aufgaben ausführt, kann der Arbeitsspeicher knapp werden. Wenn ich Probleme bei der Verarbeitung großer Datenmengen hatte, war dies normalerweise darauf zurückzuführen, dass die Anzahl der Kerne pro Executor nicht ordnungsgemäß ausgeglichen wurde. Versuchen Sie entweder die Anzahl der Kerne zu reduzieren oder den Executor-Speicher zu erhöhen.

Eine einfache Möglichkeit, Speicherprobleme zu erkennen, besteht darin, die Registerkarte Executor auf der Spark-Benutzeroberfläche zu überprüfen. Wenn Sie viele rote Balken sehen, die auf eine hohe Zeit für die Speicherbereinigung hinweisen, haben Sie wahrscheinlich in Ihren Executoren nicht mehr genug Speicher.

    
Ted 24.02.2017 19:59
quelle
0

Spark-Jobs fragen Ressourcen anders als MapReduce-Jobs vom Ressourcenmanager ab. Versuchen Sie, die Anzahl der Executoren und mem / vcore, die jedem Executor zugewiesen sind, einzustellen. Folgen Sie Ссылка

    
Kai 02.08.2016 03:38
quelle