Casa Finanza personale Comprimere i dati in Hadoop - dummies

Comprimere i dati in Hadoop - dummies

Video: How To Compress Large Video Files On Mac Without Losing Video Quality 2025

Video: How To Compress Large Video Files On Mac Without Losing Video Quality 2025
Anonim

Gli enormi volumi di dati che sono realtà in una tipica implementazione Hadoop rendono la compressione una necessità. La compressione dei dati ti consente di risparmiare molto spazio di archiviazione ed è sicuro di accelerare il movimento di tali dati in tutto il cluster. Non sorprende che un certo numero di schemi di compressione disponibili, chiamati codec, sono disponibili per te.

In una distribuzione Hadoop, si ha a che fare (potenzialmente) con un numero piuttosto elevato di singoli nodi slave, ognuno dei quali ha un numero di grandi unità disco. Non è raro che un singolo nodo slave abbia fino a 45 TB di spazio di archiviazione raw disponibile per HDFS.

Anche se i nodi slave Hadoop sono progettati per essere economici, non sono gratuiti e con grandi volumi di dati che tendono a crescere a tassi crescenti, la compressione è uno strumento ovvio per il controllo estremo volumi di dati.

In primo luogo, alcuni termini di base: un codec, che è una forma abbreviata di co mpressor / dec omprote, è tecnologia (software o hardware, o entrambi) per la compressione e la decompressione dei dati; è l'implementazione di un algoritmo di compressione / decompressione.

È necessario sapere che alcuni codec supportano qualcosa chiamato compressione splittabile e che i codec differiscono sia nella velocità con cui possono comprimere e decomprimere i dati sia nel grado in cui possono comprimerli.

La compressione separabile è un concetto importante in un contesto Hadoop. Il modo in cui Hadoop funziona è che i file vengono divisi se sono più grandi dell'impostazione della dimensione del blocco del file e le singole suddivisioni di file possono essere elaborate in parallelo da diversi mapper.

Con la maggior parte dei codec, le divisioni dei file di testo non possono essere decompresse indipendentemente dalle altre divisioni dallo stesso file, quindi i codec non sono divisibili, quindi l'elaborazione di MapReduce è limitata a un singolo mapper.

Poiché il file può essere decompresso solo nel suo complesso, e non come singole parti basate su divisioni, non può esserci un'elaborazione parallela di tale file e le prestazioni potrebbero subire un enorme successo mentre un lavoro attende un singolo mapper elaborare più blocchi di dati che non possono essere decompressi in modo indipendente.

La compressione separabile è solo un fattore per i file di testo. Per i file binari, i codec di compressione Hadoop comprimono i dati all'interno di un contenitore con codifica binaria, a seconda del tipo di file (ad esempio, SequenceFile, Avro o ProtocolBuffer).

A proposito di prestazioni, c'è un costo (in termini di risorse e tempo di elaborazione) associato alla compressione dei dati che vengono scritti nel tuo cluster Hadoop.

Con i computer, come con la vita, nulla è gratuito. Durante la compressione dei dati, stai scambiando cicli di elaborazione per lo spazio su disco. E quando questi dati vengono letti, c'è anche un costo associato alla decompressione dei dati. Assicurati di soppesare i vantaggi dei risparmi di archiviazione rispetto alle spese generali aggiuntive.

Se il file di input di un processo MapReduce contiene dati compressi, il tempo necessario per leggere i dati da HDFS viene ridotto e le prestazioni del lavoro vengono migliorate. I dati di input vengono decompressi automaticamente quando vengono letti da MapReduce.

L'estensione del nome file in ingresso determina quale codec supportato viene utilizzato per decomprimere automaticamente i dati. Ad esempio, a. estensione gz identifica il file come un file compresso con gzip.

Può anche essere utile per comprimere l'output intermedio della fase mappa nel flusso di elaborazione MapReduce. Poiché l'output della funzione mappa viene scritto su disco e inviato attraverso la rete per ridurre le attività, la compressione dell'output può comportare significativi miglioramenti delle prestazioni.

E se si desidera archiviare l'output MapReduce come file di cronologia per uso futuro, la compressione di questi dati può ridurre significativamente la quantità di spazio necessario in HDFS.

Esistono molti algoritmi e strumenti di compressione diversi e le loro caratteristiche e punti di forza variano. Il trade-off più comune è tra i rapporti di compressione (il grado in cui un file è compresso) e comprime / decomprime velocità. Il framework Hadoop supporta diversi codec. Il framework comprime e decomprime in modo trasparente la maggior parte dei formati di file di input e output.

Il seguente elenco identifica alcuni codec comuni supportati dal framework Hadoop. Assicurati di scegliere il codec più adatto alle esigenze del tuo caso d'uso particolare (ad esempio, con carichi di lavoro in cui la velocità di elaborazione è importante, scegli un codec con elevate velocità di decompressione):

  • Gzip: Una compressione utility che è stata adottata dal progetto GNU, Gzip (abbreviazione di GNU zip) genera file compressi con a. estensione gz. È possibile utilizzare il comando gunzip per decomprimere i file creati da un numero di utilità di compressione, incluso Gzip.

  • Bzip2: Dal punto di vista dell'usabilità, Bzip2 e Gzip sono simili. Bzip2 genera un rapporto di compressione migliore rispetto a Gzip, ma è molto più lento. Infatti, tra tutti i codec di compressione disponibili in Hadoop, Bzip2 è di gran lunga il più lento.

    Se stai creando un archivio che raramente avrai bisogno di interrogare e lo spazio è ad un alto livello, allora forse Bzip2 meriterà di essere preso in considerazione.

  • Snappy: Il codec Snappy di Google offre modesti rapporti di compressione, ma velocità di compressione e decompressione veloci. (In effetti, ha le più rapide velocità di decompressione, il che rende altamente desiderabile per i set di dati che è probabile che vengano interrogati spesso.)

    Il codec Snappy è integrato in Hadoop Common, un insieme di utilità comuni che supporta altri sottoprogetti Hadoop. Puoi usare Snappy come componente aggiuntivo per le versioni più recenti di Hadoop che non forniscono ancora il supporto per il codec Snappy.

  • LZO: Simile a Snappy, LZO (abbreviazione di Lempel-Ziv-Oberhumer, il trio di informatici che ha elaborato l'algoritmo) fornisce rapporti di compressione modesti, ma velocità di compressione e decompressione veloci. LZO è concesso sotto licenza GNU Public License (GPL).

    LZO supporta la compressione separabile, che consente l'elaborazione parallela di suddivisioni di file di testo compressi da parte dei lavori MapReduce. LZO ha bisogno di creare un indice quando comprime un file, perché con i blocchi di compressione a lunghezza variabile, è necessario un indice per dire al mappatore dove può dividere in sicurezza il file compresso. LZO è davvero desiderabile solo se hai bisogno di comprimere i file di testo.

Codec Hadoop

Codec File Extension Splittable? Grado di compressione Velocità di compressione
Gzip . gz No medio medio
Bzip2 . bz2 Si Alta lento
Snappy . scattanti No medio Veloce
LZO . lzo No, a meno che indicizzato Medio Veloce

Tutti gli algoritmi di compressione devono compensare il grado di compressione e la velocità di compressione che possono raggiungere. I codec elencati sono in grado di controllare il bilanciamento tra il rapporto di compressione e la velocità al momento della compressione.

Ad esempio, Gzip consente di regolare la velocità di compressione specificando un numero intero negativo (o una parola chiave), dove -1 indica il livello di compressione più veloce e -9 indica il livello di compressione più lento. Il livello di compressione predefinito è -6.

Comprimere i dati in Hadoop - dummies

Scelta dell'editore

Il programma in cinque passaggi per superare la menopausa - dummy

Il programma in cinque passaggi per superare la menopausa - dummy

Alcune donne capiscono a malapena che la menopausa è loro. Altre donne, tuttavia, sono meno fortunate. Se sei uno di questi, prendi in mano questi pochi modi per rendere la tua esperienza più facile per te stesso: capisci e accetta che stai attraversando una transizione naturale, proprio come la pubertà. Fortunatamente, sei più vecchio e più saggio di te ...

Menopausa For Dummies Cheat Sheet (edizione UK) - dummies

Menopausa For Dummies Cheat Sheet (edizione UK) - dummies

Menopausa segna la fine della fase riproduttiva della tua vita e così è un momento significativo di cambiamento fisico, emotivo e mentale per molte donne ma, per generazioni, donne di tutte le età hanno vagato alla cieca in menopausa senza sapere cosa aspettarsi. Qui puoi scoprire alcune delle nozioni di base.

Perimenopausa: facilitare la transizione dalle mestruazioni alla menopausa - manichini

Perimenopausa: facilitare la transizione dalle mestruazioni alla menopausa - manichini

Mestruazioni e menopausa sono ben noti biologici pietre miliari nella vita di una femmina. Contrariamente al pensiero popolare, la menopausa non è il periodo di mesi o anni in cui una donna sta "attraversando il cambiamento". "Questo lasso di tempo è chiamato perimenopausa. La menopausa è una data effettiva nel tempo. In particolare, è il 12 ° anniversario dell'ultimo ciclo mestruale di una donna. ...

Scelta dell'editore

Come utilizzare il filtro automatico personalizzato su una tabella di Excel - dummies

Come utilizzare il filtro automatico personalizzato su una tabella di Excel - dummies

È Possibile creare un filtro automatico personalizzato . Per fare ciò, seleziona il comando Filtro testo dal menu della tabella e scegli una delle opzioni di filtro del testo. Indipendentemente dall'opzione di filtro del testo selezionata, Excel visualizza la finestra di dialogo Filtro automatico personalizzato. Questa finestra di dialogo consente di specificare con estrema precisione quali record si desidera ...

Come utilizzare la funzione DPRODUCT in un database Excel - dummies

Come utilizzare la funzione DPRODUCT in un database Excel - dummies

DPRODUCT moltiplica i valori che corrispondono al criterio in un database Excel. Questo è potente ma anche in grado di produrre risultati che non sono l'intenzione. In altre parole, è una cosa da aggiungere e ricavare una somma. Questa è un'operazione comune su un set di dati. Osservando la seguente figura, è possibile ...

Come utilizzare la funzione DPRODUCT in Excel - dummy

Come utilizzare la funzione DPRODUCT in Excel - dummy

La funzione DPRODUCT in Excel è strana. La funzione DPRODUCT moltiplica i valori nei campi da un elenco di database in base ai criteri di selezione. Perché vorresti farlo? Chissà. La funzione utilizza la sintassi = DPRODUCT (database, campo, criteri) in cui il database è un riferimento all'intervallo alla tabella di Excel che contiene il valore desiderato ...

Scelta dell'editore

Programmazione con Java: riutilizzo dei nomi nella tua app per Android - dummies

Programmazione con Java: riutilizzo dei nomi nella tua app per Android - dummies

Ci sono un paio di cose a cui vuoi pensare quando riutilizzi i nomi nella tua app per Android. È possibile dichiarare due variabili Java - bag1 e bag2 - per fare riferimento a due diversi oggetti BagOfCheese. Va bene. Ma a volte, avere solo una variabile e riutilizzarla per il secondo oggetto funziona altrettanto bene, ...

Java: Mettere a frutto l'uso della classe - dummies

Java: Mettere a frutto l'uso della classe - dummies

La classe Employee nell'elenco non ha alcun metodo principale , quindi non c'è un punto di partenza per l'esecuzione del codice. Per risolvere questo problema, il programmatore scrive un programma separato con un metodo principale e utilizza tale programma per creare istanze Employee. Questo elenco di codici mostra una classe con un metodo principale - uno che inserisce il ...

Classi wrapper java - dummies

Classi wrapper java - dummies

La differenza tra tipi primitivi e tipi di riferimento è una delle funzionalità più controverse di Java e gli sviluppatori si lamentano spesso sulle differenze tra valori primitivi e valori di riferimento. Ogni tipo primitivo viene cotto nella lingua. Java ha otto tipi primitivi. Ogni tipo di riferimento è una classe o un'interfaccia. È possibile definire il proprio ...