Mantenha o controle de blocos de dados com namenode em hdfs

O NameNode atua como o livro de endereços para Hadoop Distributed File System (HDFS) porque sabe não só que bloqueia fazer backup de arquivos individuais, mas também onde cada um destes blocos e suas réplicas são armazenados. Quando um usuário armazena um arquivo no HDFS, o arquivo é dividido em blocos de dados, e três cópias desses blocos de dados são armazenados em nós escravos em todo o cluster Hadoop.

Isso é um monte de blocos de dados para acompanhar. Como você poderia esperar, saber onde os corpos estão enterrados torna o NameNode um componente extremamente importante em um cluster Hadoop. Se o NameNode não estiver disponível, os aplicativos não podem acessar quaisquer dados armazenados no HDFS.

Se você der uma olhada na figura a seguir, você pode ver o daemon NameNode executado em um servidor nó mestre. Todas as informações de mapeamento de lidar com os blocos de dados e seus arquivos correspondentes são armazenadas em um arquivo chamado.

Video: PROMOB importar blocos

HDFS é um sistema de arquivos journaling, o que significa que quaisquer alterações de dados são registrados em uma revista de edição que acompanha os eventos desde a última checkpoint - a última vez quando o log de editar foi fundida com. Em HDFS, a revista de edição é mantido em um arquivo chamado que está armazenado na NameNode.

inicialização e operação NameNode

Para entender como o NameNode funciona, é útil para dar uma olhada em como ele é iniciado. Como o objetivo do NameNode é informar aplicações de quantos blocos de dados que necessitam para processar e para acompanhar o local exato onde eles estão armazenados, ele precisa de todos os mapeamentos locais de bloco e bloco para arquivo que estão disponíveis no RAM.

Estes são os passos a NameNode toma. Para carregar todas as informações que o NameNode precisa após ele inicia, acontece o seguinte:

  1. O NameNode carrega o arquivo na memória.

  2. O NameNode carrega o arquivo e re-interpreta as mudanças registradas em diário para atualizar os metadados bloco que já está na memória.

  3. Os daemons DataNode enviar os relatórios de blocos NameNode.

    Para cada nó escravo, há um relatório bloco que lista todos os blocos de dados armazenados lá e descreve a saúde de cada um.

Após o processo de inicialização for concluído, o NameNode tem uma imagem completa de todos os dados armazenados no HDFS, e está pronto para receber solicitações de aplicativos de clientes Hadoop.

Como arquivos de dados são adicionados e removidos com base em pedidos de clientes, as alterações são gravadas para volumes de disco do nó escravo, atualizações de diário são feitos para o arquivo e as alterações são refletidas nos locais de blocos e metadados armazenados na memória do NameNode.

Ao longo da vida do cluster, os daemons DataNode enviar os batimentos cardíacos NameNode (um sinal rápida) a cada três segundos, indicando que eles estão ativos. (Este valor padrão é configurável.) A cada seis horas (mais uma vez, um padrão configurável), os DataNodes enviar o NameNode um relatório bloco delineamento que bloqueia arquivos estão em seus nós. Desta forma, o NameNode tem sempre uma visão atual dos recursos disponíveis no cluster.

A escrita de dados



Para criar novos arquivos no HDFS, o seguinte processo teria que ocorrer:

Video: Limpar e Reduzir o tamanho dos arquivos Auto Cad (Purge)

  1. O cliente envia uma solicitação para o NameNode para criar um novo arquivo.

    O NameNode determina quantos são necessários blocos, eo cliente recebe uma de concessão para a criação desses novos blocos de arquivos em cluster. Como parte deste contrato, o cliente tem um limite de tempo para completar a tarefa de criação. (Este prazo garante que espaço de armazenamento não é absorvido pelas aplicações do cliente falhou.)

  2. O cliente, em seguida, escreve as primeiras cópias dos blocos de arquivos para os nós escravos usando o arrendamento atribuído pelo NameNode.

    O NameNode lida com solicitações de gravação e determina onde os blocos de arquivos e suas réplicas precisa ser escrito, equilibrando disponibilidade e desempenho. A primeira cópia de um bloco de arquivo é gravado em um rack, e as segunda e terceira cópias são escritos em um rack diferente do que a primeira cópia, mas em diferentes nós escravos no mesmo rack. Este arranjo minimiza o tráfego de rede, assegurando que há blocos de dados estão no mesmo ponto de falha.

  3. Como cada bloco é escrito para HDFS, um processo especial escreve as réplicas restantes para os outros nós escravos identificados pelo NameNode.

  4. Após os daemons DataNode reconhecer o arquivo de réplicas de bloco ter sido criado, o aplicativo cliente fecha o arquivo e notifica o NameNode, que, em seguida, fecha o contrato de arrendamento em aberto.

dados Reading

Para ler arquivos do HDFS, o seguinte processo teria que ocorrer:

  1. O cliente envia uma solicitação para o NameNode para um arquivo.

    O NameNode determina quais blocos estão envolvidas e escolhe, com base na proximidade global dos blocos para o outro e para o cliente, o caminho de acesso mais eficiente.

  2. O cliente, em seguida, acessa os blocos usando os endereços indicados pelo NameNode.

Equilibrando dados no cluster Hadoop

Ao longo do tempo, com combinações de padrões-ingestão de dados irregulares (onde alguns nós escravos pode ter mais dados escritos para eles) ou falhas de nó, os dados são susceptíveis de se tornarem desigualmente distribuída entre os racks e nós escravos no seu cluster Hadoop.

Esta distribuição desigual pode ter um impacto negativo sobre o desempenho, porque a demanda de nós escravos individuais se tornará nós unbalanced- com pequenos dados não serão totalmente utilizado- e nós com muitos blocos será usado em demasia. (Nota: O uso excessivo e subutilização são baseadas na atividade do disco, e não na CPU ou RAM.)

HDFS inclui um utilitário balanceador de redistribuir quadras nós escravos em demasia para os subutilizadas, mantendo a política de colocar blocos em diferentes nós de escravos e racks. administradores Hadoop deve verificar regularmente HDFS saúde, e se os dados torna-se desigualmente distribuída, eles devem chamar o utilitário balanceador.

Video: AutoCAD 248 - Trazendo blocos, layers e estilos de outros desenhos

design de servidor mestre NameNode

Devido à sua natureza de missão crítica, o servidor mestre executar o daemon NameNode precisa marcadamente diferentes requisitos de hardware do que os de um nó escravo. Mais significativamente, os componentes de nível corporativo precisa ser usado para minimizar a probabilidade de uma interrupção. Além disso, você vai precisar de memória RAM suficiente para carregar na memória todos os dados de metadados e localização sobre todos os blocos de dados armazenados no HDFS.


Publicações relacionadas