Estrutura do Hadoop: explicação detalhada do mecanismo de trabalho do DataNode

Código-fonte deste artigo: GitHub · clique aqui || GitEE · clique aqui

1. Mecanismo de trabalho

1. Descrição básica

Estrutura do Hadoop: explicação detalhada do mecanismo de trabalho do DataNode

Os blocos de dados no DataNode são armazenados no disco na forma de arquivos, incluindo dois arquivos, um são os próprios dados e o outro são os metadados do bloco de dados, incluindo comprimento, soma de verificação e registro de data e hora;

Depois que o DataNode é iniciado, ele se registra no serviço NameNode e relata periodicamente todas as informações de metadados do bloco de dados para o NameNode;

Há um mecanismo de pulsação entre o DataNode e o NameNode. A cada 3 segundos, o resultado é retornado com o comando de execução do NameNode para o DataNode, como replicação e exclusão de dados. Se a pulsação do DataNode não for recebida por mais de 10 minutos, o nó é considerado indisponível.

2. Duração personalizada

Por meio do arquivo de configuração hdfs-site.xml, modifique a duração do tempo limite e a pulsação. A unidade de heartbeat.recheck.interval é milissegundos e a unidade de dfs.heartbeat.interval é segundos.

<property>
    <name>dfs.namenode.heartbeat.recheck-interval</name>
    <value>600000</value>
</property>
<property>
    <name>dfs.heartbeat.interval</name>
    <value>6</value>
</property>

3. O novo nó está online

Os nós da máquina atual são hop01, hop02, hop03 e um novo nó hop04 é adicionado nesta base.

Os passos básicos

Obtenha o ambiente hop04 com base no clone do nó de serviço atual;

Modifique a configuração básica do Centos7 e exclua os dados e arquivos de log;

Inicie o DataNode para associar ao cluster;

4. Configuração de vários diretórios

A configuração sincroniza os serviços no cluster, formatados para iniciar hdfs e yarn, e arquivos carregados para teste.

<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///${hadoop.tmp.dir}/dfs/data01,file:///${hadoop.tmp.dir}/dfs/data02</value>
</property>

Dois, configuração de lista negra e branca

1. Configuração da lista de permissões

Configure a lista de desbloqueio e distribua a configuração para o serviço de cluster;

[root@hop01 hadoop]# pwd
/opt/hadoop2.7/etc/hadoop
[root@hop01 hadoop]# vim dfs.hosts
hop01
hop02
hop03

Configure hdfs-site.xml, que é distribuído para o serviço de cluster;

<property>
    <name>dfs.hosts</name>
    <value>/opt/hadoop2.7/etc/hadoop/dfs.hosts</value>
</property>

Atualizar NameNode

[root@hop01 hadoop2.7]# hdfs dfsadmin -refreshNodes

Atualizar ResourceManager

[root@hop01 hadoop2.7]# yarn rmadmin -refreshNodes

2. Configuração da lista negra

Configure a lista negra e distribua a configuração para o serviço de cluster;

[root@hop01 hadoop]# pwd
/opt/hadoop2.7/etc/hadoop
[root@hop01 hadoop]# vim dfs.hosts.exclude
hop04

Configure hdfs-site.xml, que é distribuído para o serviço de cluster;

<property>
    <name>dfs.hosts.exclude</name>
    <value>/opt/hadoop2.7/etc/hadoop/dfs.hosts.exclude</value>
</property>

Atualizar NameNode

[root@hop01 hadoop2.7]# hdfs dfsadmin -refreshNodes

Atualizar ResourceManager

[root@hop01 hadoop2.7]# yarn rmadmin -refreshNodes

3. Arquivamento de arquivos

1. Descrição básica

As características do armazenamento HDFS são adequadas para arquivos grandes com dados massivos. Se cada arquivo for muito pequeno, uma grande quantidade de informações de metadados será gerada, ocupando muita memória, e ficará lento quando NaemNode e DataNode interagirem.

Estrutura do Hadoop: explicação detalhada do mecanismo de trabalho do DataNode

O HDFS pode arquivar e armazenar alguns arquivos pequenos, que podem ser entendidos como armazenamento compactado, o que reduz o consumo de NameNode e reduz a carga de interação.Ao mesmo tempo, também permite o acesso a pequenos arquivos arquivados para melhorar a eficiência geral.

2. Processo de operação

Crie dois diretórios

# 存放小文件
[root@hop01 hadoop2.7]# hadoop fs -mkdir -p /hopdir/harinput
# 存放归档文件
[root@hop01 hadoop2.7]# hadoop fs -mkdir -p /hopdir/haroutput

Carregar arquivo de teste

[root@hop01 hadoop2.7]# hadoop fs -moveFromLocal LICENSE.txt /hopdir/harinput
[root@hop01 hadoop2.7]# hadoop fs -moveFromLocal README.txt /hopdir/harinput

Operação de arquivo

[root@hop01 hadoop2.7]# bin/hadoop archive -archiveName output.har -p /hopdir/harinput /hopdir/haroutput

Ver arquivos de arquivo

[root@hop01 hadoop2.7]# hadoop fs -lsr har:///hopdir/haroutput/output.har

Estrutura do Hadoop: explicação detalhada do mecanismo de trabalho do DataNode

Desta forma, os pequenos blocos de arquivos originais podem ser excluídos.

Desarquivar arquivos

# 执行解除
[root@hop01 hadoop2.7]# hadoop fs -cp har:///hopdir/haroutput/output.har/* /hopdir/haroutput
# 查看文件
[root@hop01 hadoop2.7]# hadoop fs -ls /hopdir/haroutput

Quarto, o mecanismo da lixeira

1. Descrição básica

Se a função de lixeira estiver ativada, os arquivos excluídos podem ser restaurados dentro de um tempo especificado para evitar a exclusão acidental de dados. A implementação específica dentro do HDFS é iniciar um thread em segundo plano Emptier no NameNode. Este thread gerencia e monitora especificamente os arquivos na lixeira do sistema. Os arquivos que são colocados na lixeira e excedem seu ciclo de vida serão excluídos automaticamente.

2. Ligue a configuração

Essa configuração precisa ser sincronizada com todos os serviços do cluster;

[root@hop01 hadoop]# vim /opt/hadoop2.7/etc/hadoop/core-site.xml 
# 添加内容
<property>
   <name>fs.trash.interval</name>
    <value>1</value>
</property>

fs.trash.interval = 0, significa que o mecanismo da lixeira está desativado e = 1 significa que está ativado.

Cinco, endereço do código-fonte

GitHub·地址
https://github.com/cicadasmile/big-data-parent
GitEE·地址
https://gitee.com/cicadasmile/big-data-parent

Leitura recomendada: sistema de programação de acabamento

Número de série Nome do Projeto Endereço GitHub Endereço GitEE Recomendado
01 Java descreve padrões de design, algoritmos e estruturas de dados GitHub · clique aqui GitEE · Clique aqui ☆☆☆☆☆
02 Fundação Java, simultaneidade, orientado a objetos, desenvolvimento web GitHub · clique aqui GitEE · Clique aqui ☆☆☆☆
03 Explicação detalhada do caso do componente básico do microsserviço SpringCloud GitHub · clique aqui GitEE · Clique aqui ☆☆☆
04 Caso abrangente de combate real da arquitetura de microsserviço SpringCloud GitHub · clique aqui GitEE · Clique aqui ☆☆☆☆☆
05 Introdução ao aplicativo básico do framework SpringBoot para avançado GitHub · clique aqui GitEE · Clique aqui ☆☆☆☆
06 O framework SpringBoot integra e desenvolve middleware comum GitHub · clique aqui GitEE · Clique aqui ☆☆☆☆☆
07 Caso básico de gerenciamento de dados, distribuição, design de arquitetura GitHub · clique aqui GitEE · Clique aqui ☆☆☆☆☆
08 Série de Big Data, armazenamento, componentes, computação e outras estruturas GitHub · clique aqui GitEE · Clique aqui ☆☆☆☆☆

Acho que você gosta

Origin blog.51cto.com/14439672/2542604
Recomendado
Clasificación