Problémy s pamětí Sparku
Ověření problému s pamětí
Problémy s pamětí často vedou k chybám, jako jsou například následující:
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.
Tyto chybové zprávy jsou ale často obecné a můžou být způsobeny jinými problémy. Pokud se tedy domníváte, že máte problém s pamětí, můžete problém ověřit tak, že zdvojnásobíte paměť na jádro a zjistíte, jestli to má vliv na váš problém.
Pokud máte například typ pracovního procesu se 4 jádry a 16 GB na paměť, můžete zkusit přepnout na typ pracovního procesu, který má 4 jádra a 32 GB paměti. To vám poskytne 8 GB na jádro ve srovnání se 4 GB na jádro, které jste měli dříve. Je to poměr jader k paměti, který tady záleží. Pokud s dodatečnou pamětí trvá selhání déle nebo vůbec neselže, je to dobré znamení, že jste na správné cestě.
Pokud můžete problém vyřešit zvýšením paměti, skvělé! Možná je to řešení. Pokud se problém nevyřeší nebo nemůžete nést další náklady, měli byste se podívat hlouběji.
Možné příčiny
Existuje mnoho potenciálních důvodů problémů s pamětí:
- Příliš málo míchacích oddílů
- velké vysílání
-
uživatelsky definované funkce - funkce Window bez příkazu
PARTITION BY
- nerovnoměrná distribuce
- Stav streamování