Este blog é para limpar alguns dos problemas iniciais quando novos códigos para Spark computação distribuída. Além de aprender as APIs, é preciso se equipar com detalhes de cluster para obter o melhor da Spark power.
O ponto de partida seria a Visão Geral do Modo Cluster .
E algumas questões comuns que podem aparecer são:
- Você ainda não consegue entender os diferentes processos no cluster Standalone Spark e o paralelismo.
- Você rodou o bin\start-slave.sh e descobriu que ele gerou o trabalhador, que na verdade é um JVM. O worker é ou não um processo JVM?
- Como pelo link acima, um executor é um processo lançado para uma aplicação em um nó de worker que executa tarefas. Executor também é um JVM.
- Executors são por aplicação. Então qual é o papel de um worker? Ele coordena com o executor e comunica o resultado ao driver? ou o driver fala diretamente com o executor? Se sim, qual é o propósito do worker então?
- Como controlar o número de executores para uma aplicação?
- As tarefas podem ser feitas para rodar em paralelo dentro do executor? Se sim, como configurar o número de threads para um executor?
- Qual é a relação entre worker, executors e núcleos do executor ( – total-executor-cores)?
- O que significa ter mais workers por nó?
Vamos rever os detalhes do modo Spark Cluster.