Problemas de memória do Spark

Verificar um problema de memória

Problemas de memória geralmente resultam em mensagens de erro, como a seguinte:

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.

Essas mensagens de erro, no entanto, geralmente são genéricas e podem ser causadas por outros problemas. Portanto, se você suspeitar que tem um problema de memória, poderá verificar o problema dobrando a memória por núcleo para ver se isso afeta o problema.

Por exemplo, se você tiver um tipo de trabalho com 4 núcleos e 16 GB por memória, poderá tentar alternar para um tipo de trabalho que tenha 4 núcleos e 32 GB de memória. Isso lhe dará 8 GB por núcleo em comparação com os 4 GB por núcleo que você tinha antes. É a proporção de núcleos em relação à memória que importa aqui. Se demorar mais para falhar com a memória extra ou não falhar, isso é um bom sinal de que você está no caminho certo.

Se você puder corrigir o problema aumentando a memória, ótimo! Talvez essa seja a solução. Se isso não corrigir o problema ou você não puder arcar com o custo extra, você deverá obter detalhes.

Possíveis causas:

Há muitas razões possíveis para problemas de memória: