O modo StandAlone é o modo de operação do cluster que acompanha o Spark, não depende de outros frameworks de agendamento de recursos e é fácil de implantar.
O modo StandAlone é dividido em modo cliente e modo cluster. A diferença essencial é onde o Driver roda. Se o Driver rodar no processo SparkSubmit, é o modo Cliente. Se o Driver rodar no cluster, é o modo Cluster.
modo cliente independente
modo de cluster independente
Modo de cluster Spark On YARN
Introdução ao processo de execução do Spark
- Job: Cada operação de ação do RDD irá gerar um ou mais estágios de escalonamento Fase de escalonamento (Stage): Cada job será dividido em Shuffle Map Stage e Result Stage de acordo com a relação de dependência e o processo Shuffle. Cada estágio corresponde a um TaskSet, um Task contém vários Tasks, e o número de TaskSets é igual ao número de partições do último RDD deste estágio.
- Tarefa: A tarefa de trabalho distribuída ao Executor é a menor unidade de execução do Spark
- DAGScheduler: DAGScheduler divide o DAG em estágios com base em amplas dependências, é responsável por dividir os estágios de agendamento e converte estágios em TaskSets e os envia para TaskScheduler
- TaskScheduler: o TaskScheduler agenda a tarefa para o processo Executor no Worker e, em seguida, a lança no pool de threads do Executor para execução
Papel importante no Spark
- Master: É um processo Java que recebe as informações cadastrais e heartbeat do Worker, remove Workers com timeouts anormais, recebe tarefas enviadas por clientes, é responsável pelo escalonamento de recursos e ordena que os Workers iniciem o Executor.
- Worker: É um processo Java responsável por gerenciar o gerenciamento de recursos do nó atual, registrar-se no Master e enviar heartbeats periodicamente, iniciar o Executor e monitorar o status do Executor.
- SparkSubmit: É um processo Java responsável por enviar tarefas ao Mestre.
- Driver: É um termo geral para muitas classes. Você pode pensar em SparkContext como Driver. O driver em modo cliente roda no processo SparkSubmit, e o modo cluster roda em um processo sozinho. Ele é responsável por converter o código escrito pelo usuário em Tarefas e, em seguida, despachá-lo para o Executor para execução Monitorar o status e o progresso da execução da Tarefa.
- Executor: É um processo Java, responsável por executar a Tarefa gerada pelo lado do Driver, e colocar a Tarefa em uma thread para rodar.