Diretório do artigo
- Question1: Introduzir brevemente a arquitetura Spark?
- Resposta 1:
- Question2: Introduzir brevemente os principais componentes do Spark?
- Answer2:
- Question3: Introduzir brevemente o modelo de programação Spark?
- Resposta3:
- Question4: Qual é o modelo de cálculo Spark?
- Resposta4:
- Question5: Fale sobre o processo de execução do Spark?
- Resposta5:
- Question6: O que é o processo Spark RDD?
- Resposta6:
- Question7: O que é o Spark RDD?
- Resposta7:
Os blogs orientados para entrevistas são apresentados no estilo Q / A.
Question1: Introduzir brevemente a arquitetura Spark?
Resposta 1:
O Spark fornece uma estrutura abrangente e unificada para gerenciar as necessidades de processamento de big data de vários conjuntos de dados e fontes de dados (dados em lote ou dados de streaming em tempo real) com propriedades diferentes (dados de texto, dados de gráficos etc.).
A arquitetura principal do Spark é mostrada na figura a seguir:
Explicação dos conceitos importantes na figura acima:
Spark Core (ou seja, a segunda camada do Apache Spark na figura acima) O
Spark Core contém as funções básicas do Spark, especialmente a API, operações e ações nas quais definem o RDD. Outras bibliotecas Spark são construídas no RDD e Spark Core Acima.
Nota: RDD, DataSet distribuído resiliente, ou seja, conjunto de dados distribuído elástico.
O Spark SQL
fornece uma API para interagir com o Spark by HiveQL (uma variante SQL da linguagem de consulta do Hive para o Apache Hive). Cada tabela do banco de dados é tratada como um RDD e as consultas do Spark SQL são convertidas em operações do Spark.
O Spark Streaming
processa e controla fluxos de dados em tempo real. O Spark Streaming permite que os programas processem dados em tempo real como RDDs comuns.
Mllib (Machine Learning) é
uma biblioteca de algoritmos de aprendizado de máquina comumente usada, que é implementada como uma operação Spark no RDD. Essa biblioteca contém algoritmos de aprendizado escalonáveis, como classificação, regressão etc., que requerem operações iterativas em grandes conjuntos de dados.
O GraphX
é uma coleção de algoritmos e ferramentas para controlar gráficos, operações e cálculos paralelos de gráficos. O GraphX estende a API RDD para incluir gráficos de controle, criar subgráficos e acessar todos os vértices no caminho.
Question2: Introduzir brevemente os principais componentes do Spark?
Answer2:
Interação do componente Spark, como mostrado abaixo:
Para a explicação dos conceitos importantes na figura acima:
O Cluster Manager
é o nó principal no modo independente, controlando todo o cluster e monitorando os trabalhadores.
No modo YARN, é um gerenciador de cluster.
Como nó escravo, o Nó do Trabalhador é responsável por controlar o nó da computação e iniciar o Executor ou Driver.
O driver
executa a função main () do aplicativo.
Executor
executor é um processo em execução no nó do trabalhador para um Aplicativo.
Question3: Introduzir brevemente o modelo de programação Spark?
Resposta3:
Modelo de programação Spark, como mostrado abaixo:
Todo o processo do aplicativo Spark, desde a gravação até o envio, execução e saída, é mostrado na figura.As etapas descritas na figura são as seguintes:
- Os usuários usam a API fornecida pelo SparkContext (comumente usados são textFile, sequenceFile, runJob, stop etc.) para escrever programas de aplicativos Driver. Além disso, SQLContext, HiveContext e StreamingContext encapsulam o SparkContext e fornecem APIs relacionadas à SQL, Hive e computação de streaming.
- Os aplicativos de usuário enviados usando o SparkContext primeiro usarão o BlockManager e o BroadcastManager para transmitir a configuração do Hadoop da tarefa. O DAGScheduler converte as tarefas em RDDs e as organiza em DAGs, que também serão divididos em diferentes estágios. Por fim, o TaskScheduler usa o ActorSystem para enviar tarefas ao gerenciador de cluster.
- O gerenciador de cluster (ClusterManager) aloca recursos para tarefas, ou seja, atribui tarefas específicas a Trabalhadores.Os trabalhadores criam Executores para lidar com a execução de tarefas e os resultados são salvos no armazenamento da Loja. Independente, YARN, Mesos, EC2 etc. podem ser usados como gerenciadores de cluster Spark; HDFS, Amzon, S3, Tachyon etc. podem ser usados como armazenamento na loja.
Question4: Qual é o modelo de cálculo Spark?
Resposta4:
O diagrama de operação do modelo de computação Spark é o seguinte:
Na figura acima, o nome completo do RDD em inglês é Resiliennt Distributed Datasets, que é traduzido como um conjunto flexível de dados distribuídos.Pode ser considerado uma abstração unificada de vários modelos de cálculo de dados.O processo de cálculo do Spark é principalmente o processo de cálculo iterativo do RDD. O processo de cálculo iterativo do RDD é muito semelhante ao pipeline, ou seja, cada partição (da partição 1 à partição N) na figura acima pode ser considerada como um pipeline. O número de partições depende da configuração do número de partições e os dados de cada partição serão calculados apenas em uma tarefa. Todas as partições podem ser executadas em paralelo no Executor de vários nós da máquina.
Question5: Fale sobre o processo de execução do Spark?
Resposta5:
O fluxograma da operação do Spark é mostrado na figura a seguir:
Explicação da figura acima
- Crie o ambiente de execução do aplicativo Spark e inicie o SparkContext.
- O SparkContext se aplica ao gerenciador de recursos (que pode ser Independente, Mesos, Yarn) para executar o recurso Executor e iniciar StandaloneExecutorbackend.
- O executor solicita a tarefa do SparkContext.
- SparkContext distribui o aplicativo ao Executor.
- O SparkContext está incorporado em um gráfico DAG, o gráfico DAG é decomposto em Palco, o Taskset é enviado ao Agendador de Tarefas e, finalmente, o Agendador de Tarefas envia a Tarefa ao Executor para execução.
- A tarefa é executada no executor e libera todos os recursos após a execução.
Question6: O que é o processo Spark RDD?
Resposta6:
O fluxograma do Spark RDD é o seguinte:
Explicação da figura acima:
- Crie um objeto RDD.
- O módulo DAGScheduler intervém no cálculo para calcular as dependências entre os RDDs, e as dependências entre os RDDs formam o DAG.
- Cada trabalho é dividido em vários estágios. Uma base principal para dividir o Palco é se a entrada do fator de cálculo atual é determinada e, nesse caso, é dividida no mesmo Palco para evitar a sobrecarga de transmissão de mensagens entre vários estágios.
Question7: O que é o Spark RDD?
Resposta7:
(1) Como criar RDD
1) Criado a partir da entrada do sistema de arquivos Hadoop (ou outros sistemas de armazenamento persistente compatíveis com o Hadoop, como Hive, Cassandra, HBase) (como HDFS).
2) Converta o novo RDD do RDD principal.
3) Crie dados independentes como RDD distribuído por meio de paralelismo ou makeRDD.
(2) Dois operadores de operação de RDD (Transformação e Ação)
Existem dois tipos de operadores de operação para RDD: Transformação e Ação.
1) Transformação: a operação de transformação é um cálculo atrasado, ou seja, a operação de transformação de um RDD para outro RDD não é executada imediatamente.É necessário aguardar até que haja uma operação Action para realmente acionar a operação.
2) Ação: O operador Ação acionará o Spark para enviar uma tarefa e enviar os dados para o sistema Spark.