Modi per comprimere l'output del tuo cluster Amazon EMR - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Modi per comprimere l'output del tuo cluster Amazon EMR

Esistono diversi modi per comprimere l'output derivante dall'elaborazione dei dati. Gli strumenti di compressione utilizzati dipendono dalle proprietà dei dati. La compressione può migliorare le prestazioni quando si trasferiscono grandi quantità di dati.

Compressione dei dati di output

In questo modo si comprime l'output del processo Hadoop. Se si utilizza TextOutputFormat il risultato è un file di testo con gzip. Se stai scrivendo a, SequenceFiles il risultato è un file compresso SequenceFile internamente. Questo può essere abilitato impostando la configurazione mapred.output.compress su "true".

Se si sta eseguendo un processo in streaming, è possibile abilitarlo trasmettendo il processo in streaming a questi argomenti.

-jobconf mapred.output.compress=true

È anche possibile utilizzare un'operazione di bootstrap per comprimere automaticamente tutti gli output del lavoro. Ecco come procedere con il client Ruby.

--bootstrap-actions s3://elasticmapreduce/bootstrap-actions/configure-hadoop \ --args "-s,mapred.output.compress=true"

Infine, se si sta scrivendo un Jar personalizzato, è possibile attivare la compressione dell'output con la seguente riga quando si crea un lavoro.

FileOutputFormat.setCompressOutput(conf, true);

Compressione dei dati intermedi

Se il processo mischia una quantità significativa di dati dai mappatori ai riduttori, è possibile vedere un miglioramento delle prestazioni grazie all'abilitazione della compressione intermedia. Comprime l'output della mappa e lo decomprime quando arriva sul nodo principale. L'impostazione di configurazione è mapred.compress.map.output. È possibile abilitarlo in modo simile alla compressione di output.

Quando si scrive un Jar personalizzato, utilizzare il seguente comando:

conf.setCompressMapOutput(true);

Utilizzo della libreria Snappy con Amazon EMR

Snappy è una libreria di compressione e decompressione ottimizzata per la velocità. È disponibile su Amazon EMR AMIs versione 2.0 e successive e viene utilizzato come impostazione predefinita per la compressione intermedia. Per ulteriori informazioni su Snappy, vai alla pagina http://code.google.com/p/snappy/.