Fale sobre essas coisas sobre o Spark

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:
Insira a descrição da imagem aqui
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:

Insira a descrição da imagem aqui
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:
Insira a descrição da imagem aqui

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:

  1. 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.
  2. 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.
  3. 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:
Insira a descrição da imagem aqui

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:
Insira a descrição da imagem aqui
Explicação da figura acima

  1. Crie o ambiente de execução do aplicativo Spark e inicie o SparkContext.
  2. O SparkContext se aplica ao gerenciador de recursos (que pode ser Independente, Mesos, Yarn) para executar o recurso Executor e iniciar StandaloneExecutorbackend.
  3. O executor solicita a tarefa do SparkContext.
  4. SparkContext distribui o aplicativo ao Executor.
  5. 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.
  6. 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:
Insira a descrição da imagem aqui
Explicação da figura acima:

  1. Crie um objeto RDD.
  2. 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.
  3. 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.
Insira a descrição da imagem aqui

2) Ação: O operador Ação acionará o Spark para enviar uma tarefa e enviar os dados para o sistema Spark.
Insira a descrição da imagem aqui

Publicado 207 artigos originais · elogiou 80 · 120.000 visualizações

Acho que você gosta

Origin blog.csdn.net/qq_36963950/article/details/105336060
Recomendado
Clasificación