Entrar ou criar conta

Upnetix Labs · protocolo de experimento

Protocolo: Como a compactação de arquivos afeta o tempo de leitura no HDFS?

Este protocolo avalia o impacto do uso de compactação (gzip, snappy) no tempo de leitura de arquivos armazenados no HDFS. O objetivo é medir quanto a compactação pode influenciar a performance de leitura em um Data Lake baseado em Apache Hadoop.

Data Lakes Open Source do zero à governança
Ligado ao treinamento Data Lakes Open Source do zero à governança
Protocolo, não resultado. Esta página descreve como medir. Execução pela engenharia Upnetix: ainda não realizada. Nenhum valor aqui é resultado de medição da Upnetix; os números que valem são os que você obtém na sua bancada.
Pergunta

Qual o efeito do tipo de compactação (gzip, snappy, nenhum) sobre o tempo de leitura sequencial de arquivos no HDFS?

Hipótese

Arquivos compactados com snappy apresentam menor tempo de leitura no HDFS do que arquivos compactados com gzip ou não compactados.

Variáveis

Independentes (o que varia)tipo de compactação (gzip, snappy, nenhum)
Dependentes (o que se mede)tempo de leitura (segundos)
Controladas (o que fica fixo)tamanho do arquivo; número de DataNodes; rede; versão do Hadoop; hardware dos nós

Ambiente

Cluster Hadoop mínimo com 3 DataNodes, HDFS configurado conforme documentação oficial, arquivos de 1GB cada. Ferramenta fio para leitura sequencial, instalado em um nó cliente. Todos os nós conectados por rede gigabit dedicada.

Procedimento

  1. Preparação do ambiente

    Certifique-se de que o cluster Hadoop está operacional e todos os DataNodes ativos.

  2. Geração do arquivo de teste

    Crie um arquivo de 1GB com dados aleatórios.

    dd if=/dev/urandom of=teste1gb.raw bs=1M count=1024
  3. Compactação

    Compacte o arquivo usando gzip e snappy.

    gzip -c teste1gb.raw > teste1gb.raw.gz ; hadoop fs -put teste1gb.raw.gz /user/teste/ ; hadoop fs -put teste1gb.raw /user/teste/
  4. Compactação com snappy

    Utilize o utilitário hadoop-snappy ou compressão via API Hadoop para gerar arquivo snappy. Consulte a documentação para detalhes.

  5. Leitura sequencial

    Meça o tempo de leitura sequencial de cada arquivo usando fio.

    fio --name=leitura --filename=/mnt/hdfs/teste1gb.raw --rw=read --bs=1M --size=1G --numjobs=1 --time_based --runtime=60
  6. Repetição

    Repita a leitura para cada tipo de arquivo (sem compactação, gzip, snappy) cinco vezes, limpando caches do sistema antes de cada leitura.

    echo 3 > /proc/sys/vm/drop_caches

Planilha de coleta

tipo_compactacao (string)tempo_leitura (segundos)tamanho_arquivo (bytes)data_hora (ISO8601)
EXEMPLO: snappy, 42.1, 1048576000, 2024-06-01T10:00:00Z

Repetições recomendadas: 5. Baixe a planilha vazia em CSV: colunas prontas.

Análise

Calcule a média, mediana e desvio padrão do tempo de leitura para cada tipo de compactação. Compare os resultados entre os métodos. Analise se a diferença é significativa usando percentis (p95).

Critérios de decisão

  • Se snappy apresentar tempo de leitura igual ou menor que gzip e sem compactação em pelo menos 4 das 5 repetições, considere a hipótese confirmada.
  • Se a diferença entre as médias for inferior a 5%, considere o impacto da compactação como desprezível.

Fontes de erro e mitigação

  • Caches do sistema operacional podem influenciar o tempo de leitura; mitigue limpando caches antes de cada teste.
  • Variações de carga na rede ou no cluster podem afetar resultados; execute os testes em horários de baixa utilização.
  • Diferenças de implementação da compactação snappy podem ocorrer; utilize sempre a mesma versão do Hadoop e dos utilitários.

Referências

  1. fonte oficial · Apache Software Foundation (Hadoop) (hadoop.apache.org)
  2. fonte oficial · Apache Software Foundation (Hadoop) (hadoop.apache.org)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
2 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.