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.

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
- Preparação do ambiente
Certifique-se de que o cluster Hadoop está operacional e todos os DataNodes ativos.
- 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 - 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/ - 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.
- 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 - 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
- fonte oficial · Apache Software Foundation (Hadoop) (hadoop.apache.org)
- fonte oficial · Apache Software Foundation (Hadoop) (hadoop.apache.org)
- 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
