Simulação de cores e simultaneidade de tarefas
Eu tenho uma pergunta muito básica sobre faísca. Eu costumo executar trabalhos de faísca usando 50 núcleos. Ao visualizar o progresso do trabalho, na maioria das vezes ele mostra 50 processos em execução em paralelo (como deveria ser feito), mas às vezes mostra apenas 2 ou 4 processos de ignição em execução em paralelo. Como isso:
[Stage 8:================================> (297 + 2) / 500]
Os RDDs que estão sendo processados sãorepartitioned
em mais de 100 partições. Portanto, isso não deve ser um problema.
Eu tenho uma observação embora. Vi o padrão que na maioria das vezes acontece, a localidade dos dados no SparkUI mostraNODE_LOCAL
, enquanto outras vezes em que todos os 50 processos estão em execução, alguns deles mostramRACK_LOCAL
. Isso me faz duvidar que, talvez isso aconteça porque os dados são armazenados em cache antes do processamento no mesmo nó para evitar a sobrecarga da rede, e isso atrasa o processamento adicional.
Se for esse o caso, como evitá-lo. E se não for esse o caso, o que está acontecendo aqui?