SequenceFile

A SequenceFile é um tipo de arquivo plano e binário que serve como um container para dados a serem usados no Apache Hadoop projetos de computação distribuída. SequenceFiles são usados extensivamente com MapReduce.

Desde que o Hadoop funciona melhor com arquivos maiores, SequenceFiles são usados para armazenar e comprimir arquivos que são menores que o tamanho ideal para operar eficientemente com Hadoop, o que pode ajudar a reduzir a capacidade necessária de espaço em disco e I/O  requirements.

SequenceFiles servem como um container para uma sequência de arquivos. Keys são listados para referência e valores, e o conteúdo do arquivo é referenciado em uma determinada chave. SequenceFiles suporta um Writer, um Reader e uma classe Sorter para as respectivas funções em relação às chaves. Como exemplo, um SequenceFile pode conter um grande número de arquivos de log para um servidor onde a chave seria um timestamp e o valor seria o arquivo de log inteiro. Normalmente, os pequenos arquivos de texto seriam muito ineficientes no Hadoop. Após empacotar em SequenceFiles, entretanto, eles podem ser usados efetivamente.

Além de empacotar arquivos em um tamanho gerenciável para Hadoop, SequenceFiles suportam compressão das chaves, dos valores ou ambos.  Quando ambos são comprimidos, as chaves e valores do arquivo são coletados em blocos e separadamente comprimidos. O tipo de compressão escolhida determina o formato do arquivo.