Mais de 30 perguntas e respostas de entrevistas com o Hadoop

Bem, as estatísticas da Forbes afirmam que até 90% das organizações mundiais usam análises de Big Data para criar seus relatórios de investimento.

Com a crescente popularidade do Big Data, há conseqüentemente um aumento nas oportunidades de trabalho do Hadoop mais do que antes.

Portanto, para ajudá-lo a obter a função de especialista em Hadoop, você pode usar essas perguntas e respostas da entrevista que reunimos para você neste artigo para ajudá-lo a passar pela entrevista.

Talvez conhecer os fatos, como a faixa salarial que torna as funções de Hadoop e Big Data lucrativas, o motive a passar na entrevista, certo? 🤔

  • De acordo com o Indeed.com, um desenvolvedor de Big Data Hadoop baseado nos EUA ganha um salário médio de US$ 144.000.
  • De acordo com itjobswatch.co.uk, o salário médio de um desenvolvedor Big Data Hadoop é de £ 66.750.
  • Na Índia, a fonte do Indeed.com afirma que eles ganhariam um salário médio de ₹ 16.00.000.

Lucrativo, não acha? Agora, vamos aprender sobre o Hadoop.

O que é Hadoop?

Hadoop é uma estrutura popular escrita em Java que usa modelos de programação para processar, armazenar e analisar grandes conjuntos de dados.

Por padrão, seu design permite a expansão de servidores únicos para várias máquinas que oferecem computação e armazenamento locais. Além disso, sua capacidade de detectar e lidar com falhas na camada de aplicativos, resultando em serviços altamente disponíveis, torna o Hadoop bastante confiável.

Vamos pular direto para as perguntas mais comuns da entrevista do Hadoop e suas respostas corretas.

Perguntas e respostas da entrevista do Hadoop

O que é a unidade de armazenamento no Hadoop?

Resposta: A unidade de armazenamento do Hadoop é chamada Hadoop Distributed File System (HDFS).

Como o armazenamento conectado à rede é diferente do sistema de arquivos distribuído do Hadoop?

Resposta: O HDFS, que é o armazenamento principal do Hadoop, é um sistema de arquivos distribuído que armazena arquivos enormes usando hardware comum. Por outro lado, o NAS é um servidor de armazenamento de dados de computador em nível de arquivo que fornece acesso aos dados a grupos de clientes heterogêneos.

Enquanto o armazenamento de dados no NAS está em hardware dedicado, o HDFS distribui os blocos de dados em todas as máquinas dentro do cluster Hadoop.

O NAS usa dispositivos de armazenamento de ponta, o que é bastante caro, enquanto o hardware comum usado no HDFS é econômico.

O NAS armazena separadamente dados de cálculos, tornando-o inadequado para MapReduce. Pelo contrário, o design do HDFS permite que ele funcione com o framework MapReduce. Os cálculos movem-se para os dados na estrutura MapReduce em vez dos dados para os cálculos.

Explicar o MapReduce no Hadoop e embaralhar

Resposta: MapReduce refere-se a duas tarefas distintas que os programas Hadoop executam para permitir grande escalabilidade em centenas a milhares de servidores em um cluster Hadoop. O embaralhamento, por outro lado, transfere a saída do mapa dos mapeadores para o redutor necessário no MapReduce.

Dê uma olhada na arquitetura do Apache Pig

A Arquitetura Apache Pig

  Como acessar a conta antiga do Myspace sem e-mail e senha

Resposta: A arquitetura Apache Pig tem um interpretador Pig Latin que processa e analisa grandes conjuntos de dados usando scripts Pig Latin.

O Apache Pig também consiste em conjuntos de conjuntos de dados nos quais são executadas operações de dados como junção, carregamento, filtro, classificação e grupo.

A linguagem Pig Latin usa mecanismos de execução como shells de concessão, UDFs e incorporados para escrever scripts Pig que executam tarefas necessárias.

O Pig facilita o trabalho dos programadores convertendo esses scripts escritos em séries de tarefas Map-Reduce.

Os componentes da arquitetura do Apache Pig incluem:

  • Analisador – Ele lida com os Pig Scripts verificando a sintaxe do script e realizando a verificação de tipo. A saída do analisador representa as declarações e os operadores lógicos do Pig Latin e é chamada de DAG (gráfico acíclico direcionado).
  • Otimizador – O otimizador implementa otimizações lógicas como projeção e pushdown no DAG.
  • Compiler – Compila o plano lógico otimizado do otimizador em uma série de trabalhos MapReduce.
  • Mecanismo de Execução – É aqui que ocorre a execução final dos trabalhos MapReduce na saída desejada.
  • Modo de execução – Os modos de execução no Apache Pig incluem principalmente local e Map Reduce.

Resposta: O serviço Metastore no Metastore Local é executado na mesma JVM que o Hive, mas se conecta a um banco de dados executado em um processo separado na mesma máquina ou em uma máquina remota. Por outro lado, o Metastore no Metastore Remoto é executado em sua JVM separada da JVM do serviço Hive.

Quais são os Cinco Vs do Big Data?

Resposta: Esses cinco Vs representam as principais características do Big Data. Eles incluem:

  • Valor: Big data busca fornecer benefícios significativos de alto retorno sobre o investimento (ROI) para uma organização que usa big data em suas operações de dados. Big data traz esse valor de sua descoberta de insights e reconhecimento de padrões, resultando em relacionamentos mais fortes com os clientes e operações mais eficazes, entre outros benefícios.
  • Variedade: Isso representa a heterogeneidade do tipo de tipos de dados coletados. Os vários formatos incluem CSV, vídeos, áudio, etc.
  • Volume: define a quantidade significativa e o tamanho dos dados gerenciados e analisados ​​por uma organização. Esses dados representam um crescimento exponencial.
  • Velocidade: Esta é a taxa de velocidade exponencial para o crescimento de dados.
  • Veracidade: A veracidade refere-se a como os dados ‘incertos’ ou ‘imprecisos’ disponíveis são devidos a dados incompletos ou inconsistentes.

Explique os diferentes tipos de dados do Pig Latin.

Resposta: Os tipos de dados em Pig Latin incluem tipos de dados atômicos e tipos de dados complexos.

Os tipos de dados atômicos são os tipos de dados básicos usados ​​em todas as outras linguagens. Eles incluem o seguinte:

  • Int – Este tipo de dados define um inteiro de 32 bits com sinal. Exemplo: 13
  • Long – Long define um número inteiro de 64 bits. Exemplo: 10L
  • Float – Define um ponto flutuante de 32 bits com sinal. Exemplo: 2,5F
  • Double – define um ponto flutuante de 64 bits com sinal. Exemplo: 23,4
  • Boolean – Define um valor booleano. Inclui: Verdadeiro/Falso
  • Datetime – define um valor de data e hora. Exemplo: 1980-01-01T00:00.00.000+00:00

Tipos de dados complexos incluem:

  • Map- Map refere-se a um conjunto de pares chave-valor. Exemplo: [‘color’#’yellow’, ‘number’#3]
  • Bag – É uma coleção de um conjunto de tuplas e usa o símbolo ‘{}’. Exemplo: {(Henrique, 32), (Kiti, 47)}
  • Tupla – Uma tupla define um conjunto ordenado de campos. Exemplo: (Idade, 33)

O que são Apache Oozie e Apache ZooKeeper?

Resposta: Apache Oozie é um agendador do Hadoop encarregado de agendar e vincular trabalhos do Hadoop como um único trabalho lógico.

O Apache Zookeeper, por outro lado, coordena vários serviços em um ambiente distribuído. Ele economiza o tempo dos desenvolvedores simplesmente expondo serviços simples como sincronização, agrupamento, manutenção de configuração e nomenclatura. O Apache Zookeeper também fornece suporte pronto para uso para enfileiramento e eleição de líder.

Qual é o papel do Combiner, RecordReader e Partitioner em uma operação MapReduce?

Resposta: O combinador age como um mini redutor. Ele recebe e trabalha com dados de tarefas de mapa e, em seguida, passa a saída dos dados para a fase redutora.

O RecordHeader se comunica com o InputSplit e converte os dados em pares chave-valor para o mapeador ler adequadamente.

O Particionador é responsável por decidir o número de tarefas reduzidas necessárias para resumir os dados e confirmar como as saídas do combinador são enviadas ao redutor. O Particionador também controla o particionamento de chaves das saídas do mapa intermediário.

  9 motores de busca na Internet que você provavelmente não ouviu falar

Mencione diferentes distribuições específicas de fornecedor do Hadoop.

Resposta: Os vários fornecedores que estendem os recursos do Hadoop incluem:

  • Plataforma aberta IBM.
  • Distribuição Cloudera CDH Hadoop
  • Distribuição MapR Hadoop
  • Amazon Elastic MapReduce
  • Plataforma de Dados Hortonworks (HDP)
  • Conjunto essencial de Big Data
  • Datastax Enterprise Analytics
  • HDInsight do Microsoft Azure – Distribuição Hadoop baseada em nuvem.

Por que o HDFS é tolerante a falhas?

Resposta: O HDFS replica dados em diferentes DataNodes, tornando-o tolerante a falhas. Armazenar os dados em nós diferentes permite a recuperação de outros nós quando um modo falha.

Diferencie entre uma Federação e Alta Disponibilidade.

Resposta: A HDFS Federation oferece tolerância a falhas que permite o fluxo contínuo de dados em um nó quando outro falha. Por outro lado, a alta disponibilidade exigirá duas máquinas separadas configurando o NameNode ativo e o NameNode secundário na primeira e na segunda máquinas separadamente.

A federação pode ter um número ilimitado de NameNodes não relacionados, enquanto em Alta disponibilidade, apenas dois NameNodes relacionados, ativos e de espera, que funcionam continuamente, estão disponíveis.

NameNodes na federação compartilham um pool de metadados, com cada NameNode tendo seu pool dedicado. Em High Availability, no entanto, os NameNodes ativos são executados um por vez, enquanto os NameNodes em espera permanecem ociosos e atualizam seus metadados apenas ocasionalmente.

Como encontrar o status dos blocos e a integridade do sistema de arquivos?

Resposta: Você usa o comando hdfs fsck / tanto no nível do usuário raiz quanto em um diretório individual para verificar o status de integridade do sistema de arquivos HDFS.

Comando HDFS fsck em uso:

hdfs fsck / -files --blocks –locations> dfs-fsck.log

A descrição do comando:

  • -arquivos: Imprima os arquivos que você está verificando.
  • –locations: Imprime a localização de todos os blocos durante a verificação.

Comando para verificar o estado dos blocos:

hdfs fsck <path> -files -blocks
  • : Inicia as verificações a partir do caminho passado aqui.
  • – blocks: Imprime os blocos do arquivo durante a checagem

Quando você usa os comandos rmadmin-refreshNodes e dfsadmin-refreshNodes?

Resposta: Esses dois comandos são úteis para atualizar as informações do nó durante o comissionamento ou quando o comissionamento do nó estiver concluído.

O comando dfsadmin-refreshNodes executa o cliente HDFS e atualiza a configuração do nó do NameNode. O comando rmadmin-refreshNodes, por outro lado, executa as tarefas administrativas do ResourceManager.

O que é um ponto de verificação?

Resposta: Checkpoint é uma operação que mescla as últimas alterações do sistema de arquivos com o FSImage mais recente para que os arquivos de log de edição permaneçam pequenos o suficiente para acelerar o processo de inicialização de um NameNode. O ponto de verificação ocorre no NameNode secundário.

Por que usamos o HDFS para aplicativos com grandes conjuntos de dados?

Resposta: O HDFS fornece uma arquitetura DataNode e NameNode que implementa um sistema de arquivos distribuído.

Essas duas arquiteturas fornecem acesso de alto desempenho aos dados em clusters altamente escaláveis ​​do Hadoop. Seu NameNode armazena os metadados do sistema de arquivos na RAM, o que resulta na quantidade de memória limitando o número de arquivos do sistema de arquivos HDFS.

O que o comando ‘jps’ faz?

Resposta: O comando Java Virtual Machine Process Status (JPS) verifica se daemons Hadoop específicos, incluindo NodeManager, DataNode, NameNode e ResourceManager, estão em execução ou não. Este comando é necessário para executar a partir da raiz para verificar os nós operacionais no Host.

O que é ‘Execução especulativa’ no Hadoop?

Resposta: Este é um processo em que o nó mestre no Hadoop, em vez de corrigir as tarefas lentas detectadas, inicia uma instância diferente da mesma tarefa como uma tarefa de backup (tarefa especulativa) em outro nó. A execução especulativa economiza muito tempo, especialmente em um ambiente de carga de trabalho intensivo.

Cite os três modos nos quais o Hadoop pode ser executado.

Resposta: Os três nós primários nos quais o Hadoop é executado incluem:

  • Nó autônomo é o modo padrão que executa os serviços Hadoop usando o FileSystem local e um único processo Java.
  • O nó pseudodistribuído executa todos os serviços Hadoop usando uma única implantação do Hadoop ode.
  • O nó totalmente distribuído executa os serviços mestre e escravo do Hadoop usando nós separados.

O que é um UDF?

Resposta: UDF (funções definidas pelo usuário) permite que você codifique suas funções personalizadas que você pode usar para processar valores de coluna durante uma consulta Impala.

O que é DistCP?

Resposta: DistCp ou Distributed Copy, em suma, é uma ferramenta útil para grandes cópias de dados entre ou intracluster. Usando o MapReduce, o DistCp implementa efetivamente a cópia distribuída de uma grande quantidade de dados, entre outras tarefas, como tratamento de erros, recuperação e geração de relatórios.

Resposta: Hive metastore é um serviço que armazena metadados do Apache Hive para as tabelas do Hive em um banco de dados relacional como o MySQL. Ele fornece a API do serviço metastore que permite o acesso cent aos metadados.

Defina RDD.

Resposta: RDD, que significa Resilient Distributed Datasets, é a estrutura de dados do Spark e uma coleção distribuída imutável de seus elementos de dados que calcula nos diferentes nós do cluster.

Como as bibliotecas nativas podem ser incluídas nos trabalhos do YARN?

Resposta: Você pode implementar isso usando -Djava.library. path no comando ou definindo LD+LIBRARY_PATH no arquivo .bashrc usando o seguinte formato:

<property>
<name>mapreduce.map.env</name>
<value>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/my/libs</value>
</property>

Explique ‘WAL’ no HBase.

Resposta: O Write Ahead Log(WAL) é um protocolo de recuperação que registra alterações de dados do MemStore no HBase para o armazenamento baseado em arquivo. O WAL recupera esses dados se o RegionalServer travar ou antes de liberar o MemStore.

O YARN é um substituto para o Hadoop MapReduce?

Resposta: Não, o YARN não é um substituto do Hadoop MapReduce. Em vez disso, uma poderosa tecnologia chamada Hadoop 2.0 ou MapReduce 2 suporta MapReduce.

Qual é a diferença entre ORDER BY e SORT BY no HIVE?

Resposta: Embora ambos os comandos busquem dados de maneira classificada no Hive, os resultados do uso de SORT BY podem ser apenas parcialmente ordenados.

Além disso, SORT BY requer um redutor para ordenar as linhas. Esses redutores necessários para a saída final também podem ser múltiplos. Nesse caso, a saída final pode ser parcialmente ordenada.

Por outro lado, ORDER BY requer apenas um redutor para uma ordem total na saída. Você também pode usar a palavra-chave LIMIT que reduz o tempo total de classificação.

Qual é a diferença entre Spark e Hadoop?

Resposta: Embora o Hadoop e o Spark sejam estruturas de processamento distribuído, sua principal diferença é o processamento. Enquanto o Hadoop é eficiente para processamento em lote, o Spark é eficiente para processamento de dados em tempo real.

Além disso, o Hadoop lê e grava arquivos principalmente no HDFS, enquanto o Spark usa o conceito Resilient Distributed Dataset para processar dados na RAM.

Com base em sua latência, o Hadoop é uma estrutura de computação de alta latência sem um modo interativo para processar dados, enquanto o Spark é uma estrutura de computação de baixa latência que processa dados de forma interativa.

Compare Sqoop e Flume.

Resposta: Sqoop e Flume são ferramentas do Hadoop que coletam dados coletados de várias fontes e carregam os dados no HDFS.

  • O Sqoop (SQL-to-Hadoop) extrai dados estruturados de bancos de dados, incluindo Teradata, MySQL, Oracle, etc., enquanto o Flume é útil para extrair dados não estruturados de fontes de banco de dados e carregá-los no HDFS.
  • Em termos de eventos direcionados, o Flume é direcionado a eventos, enquanto o Sqoop não é direcionado a eventos.
  • O Sqoop usa uma arquitetura baseada em conectores onde os conectores sabem como se conectar a uma fonte de dados diferente. O Flume usa uma arquitetura baseada em agente, sendo o código escrito o agente encarregado de buscar os dados.
  • Devido à natureza distribuída do Flume, ele pode coletar e agregar dados facilmente. O Sqoop é útil para transferência paralela de dados, o que resulta na saída em vários arquivos.

Explique o BloomMapFile.

Resposta: BloomMapFile é uma classe que estende a classe MapFile e usa filtros bloom dinâmicos que fornecem um rápido teste de associação para chaves.

Liste a diferença entre HiveQL e PigLatin.

Resposta: Enquanto o HiveQL é uma linguagem declarativa semelhante ao SQL, o PigLatin é uma linguagem de fluxo de dados processual de alto nível.

O que é Limpeza de Dados?

Resposta: A limpeza de dados é um processo crucial para eliminar ou corrigir erros de dados identificados, que incluem dados incorretos, incompletos, corrompidos, duplicados e formatados incorretamente em um conjunto de dados.

Esse processo visa melhorar a qualidade dos dados e fornecer informações mais precisas, consistentes e confiáveis ​​necessárias para uma tomada de decisão eficiente dentro de uma organização.

Conclusão💃

Com o aumento atual das oportunidades de trabalho de Big Data e Hadoop, você pode querer melhorar suas chances de entrar. As perguntas e respostas da entrevista do Hadoop deste artigo irão ajudá-lo na próxima entrevista.

A seguir, você pode conferir bons recursos para aprender Big Data e Hadoop.

Boa sorte! 👍