Maneiras de compactar a saída do seu cluster Amazon EMR - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Maneiras de compactar a saída do seu cluster Amazon EMR

Existem diferentes maneiras de compactar a saída resultante do processamento de dados. As ferramentas de compactação que você usa dependem das propriedades dos seus dados. A compactação pode melhorar o desempenho quando você transfere grandes quantidades de dados.

Compactação de dados de saída

Isso comprime a saída de seu trabalho do Hadoop. Se você estiver usando TextOutputFormat o resultado é um arquivo de texto compactado com gzip. Se você estiver escrevendo para SequenceFiles , o resultado SequenceFile será comprimido internamente. Para habilitar isso, defina a configuração mapred.output.compress como true.

Se você estiver executando um trabalho de streaming, poderá habilitar isso transmitido esses argumentos ao trabalho em questão.

-jobconf mapred.output.compress=true

Você também pode usar uma ação de bootstrap para compactar automaticamente todas as saídas do trabalho. Veja a seguir como fazer isso com o cliente Ruby.

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

Por fim, se você estiver escrevendo um JAR personalizado, poderá habilitar a compactação de saída com a seguinte linha ao criar seu trabalho.

FileOutputFormat.setCompressOutput(conf, true);

Compactação de dados intermediária

Se o seu trabalho embaralhar uma quantidade significativa de dados dos mapeadores para os reducers, você poderá ver uma melhoria de desempenho ao habilitar a compactação intermediária. Compacta a saída de mapa e a descompacta quando ela chega ao nó core. A definição de configuração é mapred.compress.map.output. Você pode habilitar isso da mesma forma que a compactação de saída.

Ao escrever um JAR personalizado, use o seguinte comando:

conf.setCompressMapOutput(true);

Usando a biblioteca Snappy com a Amazon EMR

A Snappy é uma biblioteca de compactação e descompactação otimizada para velocidade. Ele está disponível na Amazon EMR AMIs versão 2.0 e posterior e é usado como padrão para compactação intermediária. Para obter mais informações sobre a Snappy, acesse http://code.google.com/p/snappy/.