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.xml ② hadoop-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.xml ② hdfs-site.xml ③ mapred-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.