HDFS perguntas da entrevista comum do Hadoop

Grandes questões dados avião +
um: HDFS rosto perguntas
1. processo de escrita HDFS

1) O módulo cliente pedidos de upload de arquivos de sistema de arquivos distribuídos para NameNode, verificação NameNode se o arquivo de destino já existe, existe o diretório pai.
2) return NameNode se ele pode ser carregado.
3) Os primeiros pedidos de clientes de bloco em várias DataNode fazer o upload para o servidor.
4) NameNode retorna três nós DataNode, respectivamente, DN1, DN2, DN3.
5) Os pedidos de clientes dn1 a transferir dados através de módulo FSDataOutputStream, recibo dn1 do pedido vai continuar a chamar dn2, então dn2 chamada DN3, estabelecerá o pipeline de comunicação é concluída.
6) dn1, dn2, passo DN3 pelos clientes resposta etapa.
7) o cliente começa a fazer upload de dn1 primeiro bloco (começando com disco lê dados em um cache de memória local) às unidades de pacotes, dn1 Packet receberá um dn2 passagem, dn2 DN3 passado; dn1 cada passar um pacote de lugares a fila de resposta à espera de uma resposta.
8) Depois de uma transferência de bloco estiver concluída, o cliente solicita novamente carregado NameNode Bloco segundo servidor. (Repita os passos 3-7).
2.HDFS ler o fluxo de dados

1) o cliente através do pedido FileSystem NameNode Distribuída para baixar um arquivo, NameNode consultando os metadados, para encontrar o bloco de endereço DataNode arquivo está localizado.
2) seleção de um DataNodes (princípio da proximidade, em seguida, aleatoriamente) servidor, um pedido para ler os dados.
3) DataNode começa a transmissão de dados para o cliente (ler dados a partir de um disco no interior do fluxo de entrada, para fazer unidades de calibração) de pacotes.
4) clientes para Packet receber unidades, o primeiro no cache local, e em seguida, gravada no arquivo de destino.
Em que circunstâncias não 3.datenode backup
configurações número de backup é 1, não será feito o backup.
Defina o número de backups no pedido de extensão -Hadoop onde, qual campo?
Dfs.replication variáveis hdfs-site.xml no.
problemas causados por um grande número de pequenas 4.HDFS arquivos, bem como soluções para o
problema:
diretório Hadoop, o arquivo será salvo na forma de blocos e objetos na memória do namenode sobre cada objeto vai ocupar mais de 150bytes número de pequenos arquivos será muito. namenode ocupada memória; namenode metadados leitura tão lento, startup prolongada; memória para mais longe, porque muito grande, resultando em um tempo de aumento gc.

A solução:
dois ângulos, um para combater as causas profundas produzir pequenos arquivos e, segundo, não pode ser resolvido na escolha da fusão.

A partir da fonte de dados, tais como extração em vez de métodos de extração de uma vez por hora, como uma vez por dia para acumular a quantidade de dados.
Se um pequeno arquivo inevitável, geralmente em uma base consolidada para resolver. MR pode escrever uma tarefa de ler um catálogo de todos arquivos pequenos, e reescrito como um arquivo grande.
o que, qual o papel que são os três componentes principais quando 5.HDFS
1 NameNode. nó de gerenciamento de cluster núcleo é todo o sistema de arquivos. mantém
a) sistema de arquivos estrutura de diretório de arquivos e informações de metadados
lista do bloco de dados de arquivo b) relação de correspondência
2 DataNode. bloco de dados específico nó é armazenado, é responsável pela leitura e escrita de dados, para enviar periodicamente um NameNode batimentos cardíacos
. 3 SecondaryNameNode. nó secundário, informações de metadados em NameNode sincronização, NameNode para ajudar fsimage e editsLog fusão.
6. fsimage e editlogs está fazendo o que?
arquivo fsimage é armazenado no arquivo de metadados Hadoop, se a falha namenode, recente arquivo fsimage será carregado na memória para reconstrução da recente metadados estado, e então começar cada edição logs de transação arquivos gravados a partir do ponto em diante relevante.

Quando o sistema de arquivos cliente executa uma operação de gravação, essas transações são primeiramente gravadas no arquivo de log.

Durante a operação namenode, escreva ao hdfs clientes são salvos para editar o arquivo, a passagem do tempo fará com que editar arquivos tornam-se muito grande, este não tem efeito sobre o namenode operação, mas se reiniciar namenode, ele transfere o conteúdo da fsimage mapeado na memória e, em seguida, um por um para executar operações de edição de arquivos, então os arquivos de log muito grande vantagem para reiniciar muito lento. por isso devemos ser periódicas editar registros e fsimage em tempo namenode prazo.
7. o tamanho do bloco em Linux a 4KB, tamanho do bloco por HDFS é 64MB ou 128MB?
bloco é a menor unidade de dados armazenados no sistema de arquivos. Se o tamanho do bloco de 4KB armazenados nos dados armazenados no Hadoop, ele vai precisar de um monte de blocos, muito maior a buscar bloco de tempo, a eficiência de gravação é reduzido.
Além disso, um mapa ou uma reduzir é processado em unidades de um bloco, se o bloco é pequeno, o número de tarefas será muito MapReduce, a sobrecarga de comutação entre tarefa torna-se grande, eficiência reduzindo
8. escreve HDFS simultâneos arquivo viável?
Não, porque o cliente recebe a licença por escrito sobre os blocos de dados por namenode posteriores, o bloco será bloqueado reta A operação de gravação for concluída, não está escrito no mesmo bloco.
9.HDFS colocação cópias de política
Aqui Insert Picture Descrição
10. diferenças e as relações NameNode e SecondaryNameNode?
Diferenças:
(. 1) é responsável pela gestão do NameNode toda metadados do sistema de arquivos, e as informações de caminho de dados para cada bloco (arquivo) correspondente a.
(2) SecondaryNameNode combinado é usado principalmente para editar a imagem espaço de nomes espaço de nomes e espelho periódica log.
Contato:
(1) SecondaryNameNode salvos em um arquivo de imagem consistente e namenode (fsimage) e editar log
(Edições).
(2) falha na namenode principal (assumindo que os dados não oportuna de cópia de segurança), os dados podem ser recuperados a partir SecondaryNameNode.
mecanismo de trabalho 11.namenode

  1. A primeira etapa: NameNode começar
    após (1) A primeira vez que você inicia formato NameNode, criar arquivos Fsimage e edições. Se esta não é a primeira vez que iniciar, registrar e editar a imagem carregar arquivos diretamente na memória.
    (2) o cliente solicita os metadados de adições e eliminações.
    (3) NameNode registros operacionais registro, atualização rolando log.
    (4) adições e deleções namenode para os metadados na memória.
  2. A segunda etapa: trabalho NameNode Secundária
    (1) Secundária NameNode perguntado se NameNode necessidade CheckPoint. NameNode se diretamente de volta para verificar os resultados.
    (2) Secundário execução pedido NameNode CheckPoint.
    (3) de rolagem NameNode sendo escrito log edições.
    (4) arquivo espelho e log de edição antes de rolagem copiados para o NameNode Secundário.
    (5) Carregando Secundária NameNode e editar o arquivo de log para a memória de imagem, e reunidos.
    (6) gerando uma nova fsimage.chkpoint arquivo de imagem.
    (7) para copiar NameNode fsimage.chkpoint.
    (8) vai NameNode fsimage.chkpoint renomeado em fsimage.
    mecanismo de trabalho 12.datenode

1) um bloco de dados na DataNode armazenadas como ficheiros em disco, incluindo dois ficheiros, uma para os dados em si, um comprimento de bloco de dados de metadados, e compreende bloco de dados de soma de verificação, e um selo de tempo.
2) DataNode NameNode Depois de iniciar o registo, pelo periódica (1 hora) para informar todos os blocos de informação NameNode.
3) a pulsação a cada 3 segundos, com um batimento cardíaco resultados de retorno para o DataNode NameNode comandos, tais como cópia de bloco de dados para uma outra máquina, ou a exclusão de um bloco de dados. Se mais de 10 minutos não recebeu uma DataNode batimentos cardíacos, o nó é considerado indisponível.
4) operação de cluster pode participar com segurança e deixar algumas máquinas.
13. O que você acha hadoop projetar razoável

  1. Ele não suporta arquivos aleatórios concorrente escrever e modificar o conteúdo do documento.
  2. não suporta baixa latência, taxa de transferência de alta acesso a dados.
  3. Acesso a um grande número de arquivos pequenos, namenode vai pegar um monte de memória, abordando tempo lendo arquivos pequenos ao longo do tempo.
  4. ambiente Hadoop para construir mais complexa.
  5. Os dados não podem ser processados ​​em tempo real.

Quais perfis 14. Hadoop em necessidade, qual é seu papel?
. 1, o site.xml Core-
fs.defaultFS: HDFS: cluster1 // (nome de domínio), onde o valor padrão refere-se a caminho HDFS.
hadoop.tmp.dir: / export / data / hadoop_tmp , onde o caminho padrão é o armazenamento de um NameNode diretório público, DataNode, secondaryNamenode de dados e similares. O usuário também pode especificar um diretório destes três próprios nós sozinhos.
ha.zookeeper.quorum: hadoop101: 2181, hadoop102: 2181, hadoop103: 2181, aqui é o endereço do cluster ZooKeeper e porta. Note-se que o número deve ser um número ímpar, e não menos de três nós.
2, hadoop-env.sh
simplesmente conjunto caminho de instalação jdk, tais como: export JAVA_HOME = / usr / local / jdk.

. 3, o site.xml HDFS-
dfs.replication: Ele determina o número de blocos de dados do sistema de arquivos de backup que o padrão é 3.
dfs.data.dir: diretório do nó DataNode armazenados no sistema de arquivos.
dfs.name.dir: Nó de Armazenamento de informações do sistema de arquivos Hadoop caminho sistema local de namenode.
4, mapred-site.xml
mapreduce.framework.name: o fio especificado mr executado em fio.

5, o fio-site.xml
configuração yarn.nodemanager.aux-serviços e funções, tais como a agregação de log

6, escravos, mestre
configuração de uma lista de nós, o nó mestre
15.Hadoop vantagens características
(1) a expansão da capacidade
(2) baixo custo,
(3) de alta eficiência
(4) a fiabilidade das
principais carácter 16. sistemas de programação dos recursos do fio no cluster que é?
ResourceManager, NodeManager
maneira 17. implementações Hadoop estão lá?
1 stand-alone
2 de modo distribuído-pseudo
3 modo de cluster
18. lista favor o trabalho cluster do Hadoop o Hadoop em que todos necessidade de iniciar o processo, quais são seus papéis ?
-Namenode => HDFS daemon é responsável pela manutenção de todo o sistema armazena informações sobre o arquivo de metadados de todo o sistema de arquivos, não haverá imagem + editar log namenode armazenamento persistente destes dados, mas os dados reconstruídos na inicialização.
sistema -Datanode => arquivo específico nó está a trabalhar quando precisamos de certos dados, namenode nos dizer onde encontrá-lo eo fundo processa DataNode correspondente servidor se comunicam diretamente, para recuperar dados de DataNode, então específica as operações de leitura / gravação
-secondarynamenode => um daemon redundante, um mecanismo de backup de metadados namenode equivalente, atualizações periódicas, e comunicar namenode, você editar a imagem, e fundindo o namenode, como um namenode backup usando
-resourcemanager => é fio plataforma daemon, responsável pela alocação e programação de todos os recursos, solicitando, assim, o cliente responsável pelo acompanhamento NodeManager
-Nodemanager => Gestão de Recursos é um único nó, executar tarefas e comandos específicos de ResourceManager de
19. lista Por favor, o que você sabe programador Hadoop, e uma breve descrição de seus métodos de trabalho
FIFO schedular: Por padrão, o princípio FIFO
schedular Capacidade : computação programador de energia, selecione o menor tamanho, alta prioridade é executada primeiro, e assim por diante.
schedular Fair: Feira de programação, todo o trabalho tem os mesmos recursos.
20. Por favor, descreva a forma de alcançar os dois hadoop classificação (classificação é a chave dupla e valor)
Um primeiro método é que todos os valores-chave são dadas Redutor em cache, em seguida, fazer uma espécie los dentro redutor. No entanto, devido à necessidade de salvar Redutor para todos os valores de uma determinada chave, pode causar erros de falta de memória.

O segundo método é uma parte ou a totalidade do valor acrescentado da chave original, para gerar uma chave de combinação. Ambos os métodos têm suas vantagens, sob o primeiro método para escrever simples, mas um pequeno grau de concorrência, situação volume de dados de baixa velocidade (em perigo de ficar sem memória),

O segundo método sugado tipo de tarefa de MapReduce framework shuffle, mais em linha com idéias do projeto Hadoop / Reduzir é. Este artigo é a segunda escolha. Vamos escrever uma Partitioner, garantir que todos os dados tem a mesma chave (a chave original, adições não estão incluídos) é enviado para o mesmo redutor, também irá preparar um comparador, de modo que, logo que os dados chegam Redutor agrupados pela chave original.
21. Por favor, descreva partição mapreduce e combinar o papel de
combinador ocorre no último estágio de um mapa, o princípio também um pequeno redutor, o papel principal é o de reduzir a quantidade de saída de dados para reduzir e aliviar o gargalo da rede de transmissão, aumento do redutor eficiência.

O efeito principal de todos mapa partição kv gerada para diferentes fases tarefa redutor atribuído para o processamento, reduzir a carga de processamento pode ser repartida fase
modo de programação 22. mapreduce (problemas de ambiguidade de fios pode ser entendido como o modo de programação, podem ser entendida como o mr fluxo de trabalho interno)
appmaster como diretor de programação, gestão e maptask reducetask

Appmaster responsável por iniciar, monitoramento e maptask reducetask

Depois que o processo for concluído Maptask, appmaster será monitorado, e sua saída é notificado para ReduceTask, e em seguida, puxe o arquivo do mapa final ReduceTask, e então o processamento;

Quando a fase reduzir concluída, appmaster mas também para o cancelamento da própria o ResourceManager
fluxo de trabalho 23.MapReduce

O processo acima é o processo de todo o fluxo de trabalho mais MapReduce exaustiva mas apenas o princípio aleatória a partir do passo 7 para o passo 16 extremidades, particularmente Aleatória processo detalhada, como se segue:
. 1) MapTask recolhido nosso método kv mapa () de saída, em buffer de memória
2) continuamente a partir da memória buffer overflow arquivo em disco local, vários arquivos podem transbordar
3) vários arquivos derramamento serão fundidos em um arquivo grande derramamento
4) no processo de consolidação do processo de transbordamento e, deve chamar partição partitioner e para triagem chave
. 5) de acordo com o seu número de partição ReduceTask, obtém-se os dados correspondentes para o respectivo partição resulta MapTask máquina
6) ReduceTask será levado para a mesma partição dos ficheiros de resultados de diferente MapTask, estes ficheiros ReduceTask em seguida, a junção (tipo intercalação)
após 7) maior do que o ficheiro combinado, processo aleatória é longo, de volta para o processo de operação lógica ReduceTask (chave removidos um por um para reduzir o grupo, as chamadas a partir do ficheiro definido pelo utilizador ( ) método)
3. Note-se que
o tamanho do buffer em shuffle irá afetar a eficiência da execução de programas de MapReduce, em princípio, quanto maior o buffer, o menor o número de io disco, executar mais rápido.
parâmetros de tamanho do buffer pode ser ajustado parâmetros: io.sort.mb um 100M padrão.
mecanismo de trabalho 24.Yarn

2. mecanismo de trabalho detalhado
(1) programa de MR submetido ao nó cliente está localizado.
(2) YarnRunner para aplicar uma aplicação de ResourceManager.
caminho de recurso (3) RM retorna ao YarnRunner aplicação.
(4) O programa será executado em HDFS para enviar os recursos necessários.
(5) recursos do programa para apresentar pedidos para executar mrAppMaster concluída.
(6) RM serão inicializados com o pedido de um usuário de tarefas.
(7) para receber uma das tarefas NodeManager tarefas.
(8) O recipiente cria NodeManager recipiente, e gera MRAppmaster.
(9) Container copiados para o recurso local dos HDFS.
(10) aplicação MRAppmaster correndo recursos MapTask a RM.
(11) RM irá executar tarefas MapTask atribuídas às duas outras NodeManager, os outros dois NodeManager respectivamente receber a tarefa e criar um recipiente.
(12) MR recebeu mandato para o script de inicialização do programa de transmissão de dois NodeManager, que estão começando dois NodeManager MapTask, MapTask tipo da partição de dados.
(13) MrAppMaster esperas para todos MapTask terminado a execução após a aplicação ao recipiente RM, executar ReduceTask.
(14) para obter dados ReduceTask partição MapTask correspondentes.
Depois (15) em execução acabado, MR RM será aplicar para o cancelamento do seu próprio.
A razão 25.Mapreduce correr devagar
desempenho de um computador: CPU, memória, disco é saudável, rede
2 I / O operações para otimizar
1) dados de inclinação
2) Map e Reduce número razoável
3) Mapa correndo muito tempo, resultando em muito tempo esperando Reduzir
4) muitos arquivos pequenos
5) não pode bloquear uma grande quantidade de grande arquivo
6) Spill muitas vezes
7) Mesclar número excessivo de vezes
26.MapReduce otimização
de métodos de otimização MapReduce, principalmente do ponto de vista de seis: uma entrada de dados, fase Mapa, o estágio Reduzir, a transmissão IO, e parâmetros de ajuste de dados de inclinação problemas comuns
6.2.1 dados de entrada
(1) com pequeno arquivo: tarefa mr antes de executar pequenos arquivos de fusão, um grande número de pequenos arquivos irá gerar uma grande quantidade de

Mapa de tarefas, mapa de tarefas para aumentar o número de cargas, ao carregar a tarefa é demorado, resultando em uma mr ficar mais lento.
(2) CombineTextInputFormat como uma entrada para o endereço de extremidade de entrada do número de cena de ficheiros pequenos.
6.2.2Map Stage
1) para reduzir o transbordamento write (derrame) vezes: ajustando io.sort.mb e valor do parâmetro sort.spill.percent, aumentando o gatilho
cap derramamento de memória, reduzir o número de derramamento, reduzindo assim IO de disco.
2) para reduzir a) tempos de intercalação combinados (: io.sort.factor por ajuste dos parâmetros, o aumento do número de documento de intercalação, reduzir o número de intercalação, encurtando assim o tempo de processamento mr.
3) Após o mapa, sem afetar a premissa lógica de serviço, combinam-se para ser processado, para reduzir I / O.
6.2.3Reduce Stage
1) um conjunto razoável de mapa e reduzir o número de: ambos não podem estar muito baixo, não pode ser definido também. Muito pouco vai levar
causa espera tarefa, o tempo de tratamento; muito vai levar a inter-mapa, reduzir as tarefas competem por recursos, resultando em processamento de erro de tempo limite.
2) definir mapa, reduzir coexiste: parâmetros de ajustamento slowstart.completedmaps para mapear a um certo ponto a executar
graus depois, também reduzir a executar, para reduzir a reduzir o tempo de espera.
3) reduzir a evitar o uso de: porque uma grande quantidade irá reduzir os conjuntos de dados de ligação de rede para o consumo de tempo.
4) um conjunto razoável de tampão reduzir lado: Por padrão, os dados atinge um valor limite, os dados no buffer será gravado no disco, e em seguida, reduce'll obter todos os dados do disco. Isto é, reduzir tampão e
não está directamente relacionada com, entre uma pluralidade de escrita de disco -> disco processo ler, uma vez que existem desvantagens para esta, então ele pode ser configurado por meio de parâmetros, de tal modo que uma porção da memória tampão de dados podem ser entregues directamente para reduzir , reduzindo assim a IO sobrecarga: mapred.job.reduce.input.buffer.percent, o padrão é de 0,0. Quando o valor é maior do que 0, ela irá reter os dados mostraram reduzir directamente as proporções especificadas de leitura de memória tampão. Assim, a necessidade de definir o buffer de memória, as necessidades de dados de leitura
para ser uma memória, mas também a reduzir a memória de computação, de modo a ser ajustado de acordo com a operação do trabalho.
Transmissão 6.2.4IO
1) usando o modo de compressão de dados, reduzindo o tempo a rede IO. Instalação e Snappy LZO codificador de compressão.
2) Utilização binários SequenceFile.
6.2.5 problema dados de enviesamento
um) fenómeno dados de enviesamento

Tilt dados de frequência - quantidade de dados de uma área é muito maior do que em outras regiões. Inclinação tamanho dados - muito maior do que o tamanho da porção de gravação do valor médio.
2) Como a recolher dados inclinadas
detalhes adicionais do mapa tecla de função de gravação no processo de saída de reduzir.
3) um método de reduzir a inclinação de um método para dados: a faixa de amostra e particionamento
pode ser definido pelo resultado obtido para a partição de dados amostrados valor pré-determinado limite original.
Método 2: Custom Partition
particionamento personalizado baseado no fundo chave de saída. Por exemplo, se as palavras-chave mapa de saída de um livro.

E em um pouco mais especializado vocabulário. Depois, você pode personalizar a partição estes vocabulário especializado para enviar a parte fixa

reduzir os casos. Enquanto os outros são enviados para a instância de reduzir restante. Método 3: Combinar
o uso de uma grande quantidade pode ser reduzida Combinar dados de enviesamento. No possível, combine o objeto é agregado e
redução de dados.
Método 4: O Mapa Junte, evite Reduzir Unir.
27. Quando Map-Reduce programas que são executados quais são os problemas mais comuns
, como a maior parte do trabalho feito, mas há sempre uma reduce've sido poucos running

Isto porque estes reduzem o processamento de dados é muito maior do que em outras reduzir, os dados podem ser inclinado por causa da irregularidade das principais tarefas da divisão causadas por

A solução pode ser redefinida regras de particionamento para muitos dados de valor de chave pode ser dividida uniformemente dispersos como o tempo de processamento de partição, ou dados de pré-processamento operação no fim do mapa combinador

Publicado 133 artigos originais · ganhou elogios 53 · vê 20000 +

Acho que você gosta

Origin blog.csdn.net/weixin_43599377/article/details/104591656
Recomendado
Clasificación