Un SequenceFile è un tipo di file binario piatto che funge da contenitore per i dati da utilizzare nei progetti di elaborazione distribuita di Apache Hadoop. SequenceFiles sono ampiamente utilizzati con MapReduce.
Poiché Hadoop funziona al meglio con file più grandi, SequenceFiles viene utilizzato per archiviare e comprimere file di dimensioni inferiori alla dimensione ottimale per operare in modo efficiente con Hadoop, il che può aiutare a ridurre la capacità di spazio su disco richiesta ei requisiti di I / O.
SequenceFiles funge da contenitore per una sequenza di file. Le chiavi sono elencate per riferimento e valori e il contenuto del file è referenziato in una determinata chiave. SequenceFiles supportano una classe Writer, Reader e Sorter per le rispettive funzioni in relazione ai tasti. Ad esempio, un SequenceFile potrebbe contenere un numero enorme di file di registro per un server in cui la chiave sarebbe un timestamp e il valore sarebbe l'intero file di registro. Normalmente, i piccoli file di testo sarebbero molto inefficienti in Hadoop. Dopo aver impacchettato in SequenceFiles, tuttavia, possono essere utilizzati in modo efficace.
Oltre a impacchettare i file in una dimensione gestibile per Hadoop, SequenceFiles supporta la compressione delle chiavi, dei valori o di entrambi. Quando entrambi sono compressi, le chiavi ei valori del file vengono raccolti in blocchi e compressi separatamente. Il tipo di compressione scelto determina il formato del file.