Mais de 15 perguntas e respostas da entrevista do Apache Spark 2022

Publicados: 2021-01-08

Qualquer um que esteja familiarizado com o Apache Spark sabe por que ele está se tornando uma das ferramentas de Big Data mais preferidas atualmente – ele permite computação super-rápida.

O fato de o Spark oferecer suporte ao processamento rápido de Big Data está se tornando um sucesso entre as empresas em todo o mundo. De grandes nomes como Amazon, Alibaba, eBay e Yahoo, a pequenas empresas do setor, o Spark conquistou um enorme número de seguidores. Graças a isso, as empresas procuram continuamente profissionais de Big Data qualificados com experiência no domínio do Spark.

Para todos que desejam conseguir empregos relacionados a um perfil de Big Data (Spark), você deve primeiro resolver com sucesso a entrevista do Spark. Aqui está algo que pode levá-lo um passo mais perto de seu objetivo - 15 perguntas mais comuns da entrevista do Apache Spark!

  1. O que é Spark?

O Spark é uma estrutura de Big Data de computação em cluster de código aberto que permite o processamento em tempo real. É um mecanismo de processamento de dados de uso geral capaz de lidar com diferentes cargas de trabalho, como lote, interativo, iterativo e streaming. O Spark executa cálculos na memória que ajudam a aumentar a velocidade do processamento de dados. Ele pode ser executado de forma independente, no Hadoop ou na nuvem.

  1. O que é RDD?

RDD ou Resilient Distributed Dataset é a estrutura de dados primária do Spark. É uma abstração essencial no Spark que representa a entrada de dados em um formato de objeto. RDD é uma coleção de objetos imutáveis ​​e somente leitura em que cada nó é particionado em partes menores que podem ser computadas em diferentes nós de um cluster para permitir o processamento de dados independente.

  1. Diferencie entre Apache Spark e Hadoop MapReduce.

Os principais diferenciais entre Apache Spark e Hadoop MapReduce são:

  • O Spark é mais fácil de programar e não requer abstrações. MapReduce é escrito em Java e é difícil de programar. Precisa de abstrações.
  • O Spark possui um modo interativo, enquanto o MapReduce não o possui. No entanto, ferramentas como Pig e Hive facilitam o trabalho com o MapReduce.
  • O Spark permite processamento em lote, streaming e aprendizado de máquina no mesmo cluster. O MapReduce é mais adequado para processamento em lote.
  • O Spark pode modificar os dados em tempo real via Spark Streaming. Não existe tal provisão em tempo real no MapReduce – você só pode processar um lote de dados armazenados.
  • O Spark facilita cálculos de baixa latência armazenando em cache resultados parciais na memória. Isso requer mais espaço de memória. Ao contrário, MapReduce é orientado a disco que permite armazenamento permanente.
  • Como o Spark pode executar tarefas de processamento na memória, ele pode processar dados muito mais rápido que o MapReduce.
  1. O que é o Vetor Esparso?

Um vetor esparso é composto por duas matrizes paralelas, uma para índices e outra para valores. Eles são usados ​​para armazenar entradas diferentes de zero para economizar espaço de memória.

  1. O que é particionamento no Spark?

O particionamento é usado para criar unidades de dados menores e lógicas para ajudar a acelerar o processamento de dados. No Spark, tudo é um RDD particionado. As partições paralelizam o processamento de dados distribuídos com tráfego de rede mínimo para enviar dados aos vários executores do sistema.

  1. Defina Transformação e Ação.

Tanto a Transformação quanto a Ação são operações executadas em um RDD.

Quando a função Transformação é aplicada a um RDD, ela cria outro RDD. Dois exemplos de transformação são map() e filer() – enquanto map() aplica a função transferida para ele em cada elemento do RDD e cria outro RDD, filter() cria um novo RDD selecionando componentes do RDD atual que transferem o argumento da função. Ele é acionado somente quando ocorre uma Ação.

Uma ação recupera os dados do RDD para a máquina local. Ele aciona a execução usando um gráfico de linhagem para carregar os dados no RDD original, realizar todas as transformações intermediárias e retornar os resultados finais ao programa Driver ou gravá-los no sistema de arquivos.

  1. O que é um gráfico de linhagem?

No Spark, os RDDs codependem uns dos outros. A representação gráfica dessas dependências entre os RDDs é chamada de gráfico de linhagem. Com informações do gráfico de linhagem, cada RDD pode ser calculado sob demanda – se alguma vez um pedaço de um RDD persistente for perdido, os dados perdidos podem ser recuperados usando as informações do gráfico de linhagem.

  1. Qual é o objetivo do SparkCore?

SparkCore é o motor base do Spark. Ele executa uma série de funções vitais, como tolerância a falhas, gerenciamento de memória, monitoramento de trabalhos, agendamento de trabalhos e interação com sistemas de armazenamento.

  1. Nomeie as principais bibliotecas do Spark Ecosystem.

As principais bibliotecas do Spark Ecosystem são:

  • Spark Streaming – É usado para habilitar o streaming de dados em tempo real.
  • Spark MLib- É a biblioteca de aprendizado de máquina do Spark que é comumente usada em algoritmos de aprendizado como classificação, regressão, clustering, etc.
  • Spark SQL – Ajuda a executar consultas semelhantes a SQL nos dados do Spark, aplicando ferramentas de visualização padrão ou de inteligência de negócios.
  • Spark GraphX ​​– É uma API Spark para processamento de gráficos para desenvolver e transformar gráficos interativos.
  1. O que é o YARN? É necessário instalar o Spark em todos os nós de um cluster YARN?

O Yarn é uma plataforma central de gerenciamento de recursos no Spark. Ele permite a entrega de operações escalonáveis ​​em todo o cluster Spark. Enquanto o Spark é a ferramenta de processamento de dados, o YARN é o gerenciador de contêiner distribuído. Assim como o Hadoop MapReduce pode ser executado no YARN, o Spark também pode ser executado no YARN.

Não é necessário instalar o Spark em todos os nós de um cluster YARN porque o Spark pode ser executado em cima do YARN – ele é executado independentemente de sua instalação. Ele também inclui diferentes configurações para execução no YARN, como master, queue, deploy-mode, driver-memory, executor-memory e executor-cores.

  1. O que é o Catalyst Framework?

A estrutura Catalyst é uma estrutura de otimização exclusiva no Spark SQL. O principal objetivo de uma estrutura de catalisador é permitir que o Spark transforme automaticamente as consultas SQL adicionando novas otimizações para desenvolver um sistema de processamento mais rápido.

  1. Quais são os diferentes tipos de gerenciadores de cluster no Spark?

A estrutura do Spark é composta por três tipos de gerenciadores de cluster:

  1. Autônomo – o gerenciador primário usado para configurar um cluster.
  2. Apache Mesos – O gerenciador de cluster integrado e generalizado do Spark que pode executar o Hadoop MapReduce e outros aplicativos também.
  3. Yarn – O gerenciador de cluster para lidar com o gerenciamento de recursos no Hadoop.
  1. O que é um nó de trabalho?

Worker Node é o “nó escravo” do Nó Mestre. Refere-se a qualquer nó que possa executar o código do aplicativo em um cluster. Assim, o nó mestre atribui trabalho aos nós de trabalho que executam as tarefas atribuídas. Os nós de trabalho processam os dados armazenados e, em seguida, relatam ao nó mestre.

  1. O que é um Spark Executor?

Um Spark Executor é um processo que executa cálculos e armazena os dados no nó do trabalhador. Toda vez que o SparkContext se conecta a um gerenciador de cluster, ele adquire um Executor nos nós de um cluster. Esses executores executam as tarefas finais que são atribuídas a eles pelo SparkContext.

  1. O que é um arquivo Parquet?

O arquivo Parquet é um arquivo de formato colunar que permite que o Spark SQL leia e grave operações. O uso do arquivo parquet (formato colunar) tem muitas vantagens:

  1. O formato de armazenamento em coluna consome menos espaço.
  2. O formato de armazenamento de coluna mantém as operações de E/S sob controle.
  3. Ele permite que você acesse colunas específicas com facilidade.
  4. Ele segue a codificação específica do tipo e fornece dados mais bem resumidos.

Pronto - nós facilitamos você no Spark. Esses 15 conceitos fundamentais no Spark ajudarão você a começar a usar o Spark.

Se você estiver interessado em saber mais sobre Big Data, confira nosso programa PG Diploma in Software Development Specialization in Big Data, projetado para profissionais que trabalham e fornece mais de 7 estudos de caso e projetos, abrange 14 linguagens e ferramentas de programação, práticas práticas workshops, mais de 400 horas de aprendizado rigoroso e assistência para colocação de emprego com as principais empresas.

Confira nossos outros Cursos de Engenharia de Software no upGrad.

Aprimore-se e prepare-se para o futuro

Mais de 400 horas de aprendizado. 14 Idiomas e Ferramentas. Status de ex-aluno do IIIT-B.
Programa Avançado de Certificação em Big Data do ITT Bangalore