Problemen met Spark-geheugen
Een geheugenprobleem verifiëren
Geheugenproblemen leiden vaak tot foutberichten zoals:
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.
Deze foutberichten zijn echter vaak algemeen en kunnen worden veroorzaakt door andere problemen. Dus als u vermoedt dat u een geheugenprobleem hebt, kunt u het probleem controleren door het geheugen per kern te verdubbelen om te zien of dit van invloed is op uw probleem.
Als u bijvoorbeeld een werkroltype hebt met 4 kernen en 16 GB per geheugen, kunt u proberen over te schakelen naar een werkroltype met 4 kernen en 32 GB geheugen. Dat geeft u 8 GB per kern vergeleken met de 4 GB per kern die u eerder had. Het is de verhouding tussen kernen en geheugen die hier van belang zijn. Als het langer duurt om te mislukken met het extra geheugen of helemaal niet mislukt, is dat een goed teken dat u op het juiste spoor bent.
Als u uw probleem kunt oplossen door het geheugen te vergroten, geweldig! Misschien is dat de oplossing. Als het probleem niet wordt opgelost of als u de extra kosten niet kunt dragen, moet u dieper graven.
Mogelijke oorzaken
Er zijn veel mogelijke redenen voor geheugenproblemen:
- Te weinig willekeurige partities
- Grote uitzending
- UDF's
- Vensterfunctie zonder
PARTITION BY
instructie - Schuintrekken
- Streamingstatus