Problemas de memória do Spark

Verificação de um problema de memória

Os problemas de memória geralmente resultam em mensagens de erro como as seguintes:

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.

No entanto, essas mensagens de erro geralmente são genéricas e podem ser causadas por outros problemas. Portanto, se o senhor 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 o senhor tiver um tipo worker com 4 núcleos e 16 GB de memória, pode tentar mudar para um tipo worker 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 o senhor tinha antes. O que importa aqui é a proporção entre núcleos e memória. Se demorar mais para falhar com a memória extra ou não falhar, isso é um bom sinal de que o senhor está no caminho certo.

Se o senhor conseguir resolver o problema aumentando a memória, ótimo! Talvez essa seja a solução. Se isso não resolver o problema, ou se o senhor não puder arcar com o custo extra, deve ir mais fundo.

Possíveis causas

Há muitos motivos possíveis para os problemas de memória: