Perguntas da entrevista do engenheiro de desenvolvimento de big data

1. Questões de múltipla escolha

1. Qual programa é responsável pelo armazenamento de dados HDFS?

nó de dados

2. Quantas cópias de um bloco no HDFS são salvas por padrão?

Padrão 3 cópias

3. Qual programa geralmente é iniciado no mesmo nó que NameNode?

Rastreador de empregos

4. Qual é o tamanho de bloco padrão do HDFS?

64 MB

5. Qual costuma ser o principal gargalo de um cluster?

E/S de disco

6. Sobre SecondaryNameNode?

Seu objetivo é ajudar o NameNode a mesclar logs de edição e reduzir o tempo de inicialização do NameNode

7. O que pode ser usado como gerenciamento de cluster?

Fantoche、Pdsh、Zookeeper

8. O processo quando o cliente carrega arquivos

O Cliente inicia uma solicitação de gravação de arquivo para o NameNode. NameNode retorna parte das informações do DataNode que gerencia para o Cliente com base no tamanho do arquivo e na configuração do bloco de arquivo. O Cliente divide o arquivo em vários blocos e os grava em cada bloco DataNode em ordem de acordo com as informações de endereço do DataNode. (NameNode->Cliente->Bloqueio->DataNode)  

9. Qual é a configuração principal do Hadoop?

A configuração principal do Hadoop é concluída por meio de dois arquivos xml: ① hadoop-default.xmlhadoop-site.xml . Todos esses arquivos usam o formato xml, portanto há alguns atributos em cada xml, incluindo nomes e valores, mas esses arquivos não existem mais.

10. Como configurar agora?

O Hadoop agora possui 3 arquivos de configuração, ① core-site.xmlhdfs-site.xmlmapred-site.xml . Esses arquivos são salvos no subdiretório conf/.

11. Qual é a utilidade do comando jps?

Este comando pode verificar se Namenode, Datanode, Task Tracker e Job Tracker estão funcionando corretamente.

12. Qual é o princípio do mapreduce?        

Estágio do mapa:

  • Divisão : Primeiro, o conjunto de dados de entrada é dividido em vários pequenos blocos, cada pequeno bloco contém uma parte do registro de dados. Esses pequenos pedaços são chamados de fragmentos ou fragmentos de entrada.
  • Mapeamento: Nesta fase, o usuário da tarefa MapReduce especifica uma função de mapeamento (função Map) que converte cada registro do conjunto de dados de entrada em um conjunto de pares chave-valor. A geração desses pares chave-valor é realizada de forma independente e em paralelo. Cada tarefa Map corresponde a um fragmento de entrada, portanto o estágio Map possui um alto grau de paralelismo. Os pares de valores-chave de saída da função Map geralmente estão relacionados às características do problema.
  • Agrupamento e classificação: Os pares de valores-chave gerados serão agrupados para que valores com a mesma chave possam ser passados ​​​​para a mesma tarefa de redução. Além disso, esses pares de valores-chave também serão classificados por chave para facilitar a processo na etapa Reduzir.

Fase de redução:

  • Reduzir: Na fase Reduzir, o usuário especifica uma função de redução (função de redução) que recebe um conjunto de pares de valores-chave com a mesma chave e os combina em um ou mais resultados de saída. Cada tarefa de redução processa um grupo de chaves exclusivo e as tarefas de redução também podem ser executadas em paralelo.
  • Saída de resultado: Finalmente, os resultados de saída da tarefa Reduzir são gravados em armazenamento persistente (como um sistema de arquivos distribuído) para análise e uso adicionais.

13. Processo de gravação HDFS

  • Cliente vincula namenode para armazenar dados
  • O namenode registra uma informação de localização de dados (metadados) e informa ao cliente onde armazená-los.
  • O cliente usa a API HDFS para armazenar dados (o padrão é 64M) no datanode.
  • O datanode fará backup dos dados horizontalmente e enviará feedback ao cliente após a conclusão do backup.
  • O cliente notifica o namenode que o bloco de armazenamento foi concluído.
  • O namenode sincroniza metadados na memória.
  • Outra peça percorre o processo acima.

   processo

  • O cliente se conecta ao namenode, verifica os metadados e encontra o local de armazenamento dos dados.
  • O cliente lê dados simultaneamente por meio da API HDFS.
  • Feche a conexão.

14. Qual é a função do Combiner do Hadoop?

Combiner é uma implementação de redução, que executa tarefas de computação no lado do mapa e reduz os dados de saída no lado do mapa.

A função é otimização, mas o cenário de uso do combinador é que o mapa e a redução de entrada e saída do mapreduce são os mesmos.

15. Descreva resumidamente a instalação do hadoop

  • Criar conta hadoop
  • configuração.Alterar IP
  • Instale java, modifique o arquivo /etc/profile e configure variáveis ​​de ambiente java
  • Modifique o nome de domínio do arquivo host
  • Instale o SSH e configure a comunicação sem chave
  • Descompacte o Hadoop
  • Configure hadoop-env.sh, core-site.sh, mapred-site.sh, hdfs-site.sh no arquivo conf
  • Configurar variáveis ​​de ambiente hadoop
  • Formato de namenode Hadoop
  • começar tudo

16. Liste o nome do processo hadoop

  • namenode gerencia o cluster e registra informações do arquivo datanode
  • segundo nome: pode ser usado como espera fria para realizar backup instantâneo de dados dentro de um determinado intervalo.
  • datanode: armazena dados
  • Jobtracker: gerencie tarefas e atribua tarefas ao tasktracker
  • Tasktracker: executor de tarefas

17. Escreva os seguintes comandos

  • Mate um trabalho
  • Exclua /tmp/aaa em hdfs
  • Novos comandos de status do cluster necessários para adicionar um novo nó de armazenamento e excluir um nó de computação
hadoop job -list #拿到job-id
hadoop job -kill job-id
Hadoop fs -rmr/tmp/aaa
#加新节点时:
Hadoop-daemon.sh start datanode
Hadoop-daemon.sh start tasktracker

#删除时
hadoop mradmin -refreshnodes
hadoop dfsadmin -refreshnodes

18. Descreva resumidamente o agendador do hadoop

  • Cronograma FIFO: padrão, princípio primeiro a entrar, primeiro a sair
  • Capacidade escalonável: O escalonador de poder de computação seleciona aquele com menor ocupação e maior prioridade para executar primeiro e assim por diante.
  • Agendamento justo: agendamento justo, todos os trabalhos têm os mesmos recursos

19. O papel do combinador e da partição 

  • Combiner é a implementação de redução, que executa tarefas de computação no lado do mapa e reduz os dados de saída no lado do mapa. A função é otimização, mas o cenário de uso do ombiner é que o resultado da saída do mapa da redução do mapa seja igual à entrada e saída da redução.
  •   A implementação padrão da partição é Hashpartition.O lado do mapa particiona os dados de acordo com o número de redutores e usa diferentes redutores para copiar seus próprios dados. A função da partição é dividir os dados em diferentes redutores de cálculo para acelerar o efeito do cálculo. 

20. A diferença entre tabelas internas do hive e tabelas externas

  • Tabela interna: carrega dados no diretório hdfs onde o hive está localizado.Quando excluído, os metadados e os arquivos de dados são excluídos.
  • Tabela externa: Não carregue dados no diretório hdfs onde o hive está localizado. Ao excluir, apenas a estrutura da tabela é excluída.

21. Como criar uma chave de linha Hbase? Qual é a melhor maneira de criar uma família de colunas?

  • Ao armazenar em hbase, os dados são armazenados na ordem lexicográfica (ordem de bytes) da chave de linha. Ao projetar a chave, ela deve ser totalmente classificada.
  • Esse recurso de armazenamento serve para armazenar linhas que geralmente são lidas juntas. (Correlação posicional) Um grupo de colunas é um arquivo na parte inferior dos dados, portanto, as colunas que são frequentemente consultadas juntas são colocadas em um grupo de colunas. Os grupos de colunas devem ser o mínimo possível para reduzir o tempo de busca do arquivo.

22. Como lidar com o problema de distorção de dados usando mapreduce?

Distorção de dados: Quando o programa de mapeamento/redução é executado, a maioria dos nós de redução foram executados, mas um ou vários nós de redução são executados muito lentamente, resultando em um longo tempo de processamento para todo o programa. Isso ocorre porque o número de certas chaves é maior do que a de outras chaves. Muito mais (às vezes até cem ou mil vezes), a quantidade de dados processados ​​pelo nó de redução onde esta chave está localizada é muito maior do que a de outros nós, resultando em certos nós atrasado, o que é chamado de distorção de dados.

Solução: Ao usar programas Hadoop para associação de dados, muitas vezes é encontrada distorção de dados. Aqui está uma solução: implemente você mesmo a classe de partição e adicione a chave e o valor para obter o valor do hash. 

 23. Como otimizar na estrutura hadoop

  • Otimize do ponto de vista do aplicativo. Como o mapreduce analisa iterativamente os arquivos de dados linha por linha, como escrever aplicativos eficientes sob iteração é uma ideia de otimização.
  • Ajustando os parâmetros do hadoop. O sistema hadoop atual tem mais de 190 parâmetros de configuração. Como ajustar esses parâmetros para fazer com que o trabalho do hadoop seja executado o mais rápido possível também é uma ideia de otimização.
  • A otimização do ponto de vista da implementação do sistema é a mais difícil: é descobrir deficiências no design e implementação atuais do Hadoop do ponto de vista do mecanismo de implementação do Hadoop e, em seguida, fazer modificações no nível do código-fonte. Embora este método seja difícil, muitas vezes é eficaz.
  • Ajuste de parâmetros do kernel Linux

24. Quando desenvolvemos um trabalho, podemos retirar a fase de redução?

Sim, basta definir o número de redução como 0.

25. Em que circunstâncias não será feito backup do datanode?

O backup do datanode não será feito quando for forçado a desligar ou sofrer uma queda de energia anormal.

26. Arquitetura HDFS

HDFS consiste em namenode, secondraynamenode e datanode. É o modo n+1.

  • O namenode é responsável por gerenciar o datanode e registrar metadados
  • secondraynamenode é responsável por mesclar logs
  • datanode é responsável por armazenar dados

27. O que acontecerá se um dos três datanodes apresentar um erro?

Os dados deste datanode serão copiados novamente em outros datanodes.

28. Descreva onde o mecanismo de cache é usado no Hadoop e quais são suas funções?

Após o MapReduce enviar o ID do trabalho, todos os arquivos serão armazenados no cache distribuído para que possam ser compartilhados por todos os MapReduce.

29. Como determinar o status de integridade do cluster Hadoop

Por meio de monitoramento de página e controle de script

30. Por que é recomendado o uso de tabelas externas em ambiente de produção?

  • Como as tabelas externas não carregam dados no hive, a transmissão de dados é reduzida e os dados podem ser compartilhados.
  • O hive não modificará os dados, portanto não há necessidade de se preocupar com danos aos dados
  • Ao excluir uma tabela, apenas a estrutura da tabela é excluída, sem excluir os dados da tabela.

Acho que você gosta

Origin blog.csdn.net/qq_43687860/article/details/133160096
Recomendado
Clasificación