Problemy z pamięcią platformy Spark
Weryfikowanie problemu z pamięcią
Problemy z pamięcią często powodują komunikaty o błędach, takie jak następujące:
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.
Te komunikaty o błędach są jednak często ogólne i mogą być spowodowane innymi problemami. Jeśli więc podejrzewasz, że masz problem z pamięcią, możesz sprawdzić problem, podwojając pamięć na rdzeń, aby sprawdzić, czy ma to wpływ na problem.
Jeśli na przykład masz typ procesu roboczego z 4 rdzeniami i 16 GB na pamięć, możesz spróbować przełączyć się na typ procesu roboczego, który ma 4 rdzenie i 32 GB pamięci. Zapewni to 8 GB na rdzeń w porównaniu z 4 GB na rdzeń wcześniej. Jest to stosunek rdzeni do pamięci, która ma znaczenie tutaj. Jeśli awaria z dodatkową pamięcią trwa dłużej lub w ogóle nie kończy się niepowodzeniem, jest to dobry znak, że jesteś na właściwej drodze.
Jeśli możesz rozwiązać problem, zwiększając pamięć, świetnie! Może to jest rozwiązanie. Jeśli nie rozwiąże problemu lub nie możesz ponosić dodatkowych kosztów, należy dokładniej zapoznać się z tym problemem.
Możliwe przyczyny
Istnieje wiele potencjalnych przyczyn problemów z pamięcią:
- Zbyt mało partycji mieszania
- Duża emisja
- Udfs
- Funkcja Window bez
PARTITION BY
instrukcji - Pochyl
- Stan przesyłania strumieniowego