Spark-Speicherprobleme
Überprüfen eines Speicherproblems
Speicherprobleme führen häufig zu Fehlermeldungen wie den folgenden:
SparkException: Job aborted due to stage failure: Task 3 in stage 0.0 failed 4 times, most recent failure: Lost task 3.3 in stage 0.0 (TID 30) (10.139.64.114 executor 4): ExecutorLostFailure (executor 4 exited caused by one of the running tasks) Reason: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages.
Diese Fehlermeldungen sind jedoch häufig generisch und können durch andere Probleme verursacht werden. Wenn Sie also vermuten, dass Sie ein Speicherproblem haben, können Sie das Problem überprüfen, indem Sie den Speicher pro Kern verdoppeln, um festzustellen, ob es sich auf Ihr Problem auswirkt.
Wenn Sie z. B. über einen Arbeitstyp mit 4 Kernen und 16 GB pro Arbeitsspeicher verfügen, können Sie versuchen, zu einem Arbeitstyp mit 4 Kernen und 32 GB Arbeitsspeicher zu wechseln. Das gibt Ihnen 8 GB pro Kern im Vergleich zu den 4 GB pro Kern, die Sie zuvor hatten. Es ist das Verhältnis von Kernen zum Arbeitsspeicher, das hier wichtig ist. Wenn es mit dem zusätzlichen Arbeitsspeicher länger dauert, bis ein Fehler auftritt, oder gar kein Fehler auftritt, ist das ein gutes Zeichen dafür, dass Sie auf dem richtigen Weg sind.
Wenn Sie Ihr Problem beheben können, indem Sie den Arbeitsspeicher erhöhen, großartig! Vielleicht ist das die Lösung. Wenn das Problem nicht behoben wird oder Sie die zusätzlichen Kosten nicht tragen können, sollten Sie tiefer gehen.
Mögliche Ursachen
Es gibt viele mögliche Ursachen für Speicherprobleme:
- Zu wenige Shufflepartitionen
- Große Übertragung
- UDFs
- Fensterfunktion ohne
PARTITION BY
-Anweisung - Neigung
- Streaming-Zustand