복붙노트

[HADOOP] hadoop mapreduce의 출력을 압축하는 가장 효율적인 방법

HADOOP

hadoop mapreduce의 출력을 압축하는 가장 효율적인 방법

mapreduce 출력을 gzip으로 압축 할 수 있습니다.

"mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec"

hadoop 용 우편 코덱을 구현하는 것이 간단합니까? Zip은 컨테이너이지만 아카이브 당 하나의 파일 만 필요하므로 CompressionCodec 인터페이스로 ZipCodec를 쉽게 만들 수 있습니까?

또는 동일한 deflate 알고리즘을 사용할 수 있기 때문에 gz 파일을 zip으로 변환하는 효율적인 방법이 있습니까?

해결법

  1. ==============================

    1.큰 문제는 없습니다. java.util.zip.ZipOutputStream을 감쌀 수 있습니다.

    큰 문제는 없습니다. java.util.zip.ZipOutputStream을 감쌀 수 있습니다.

    org.apache.hadoop.io.compress.DefaultCodec를 확장하여 자체 코덱을 구현하여이를 수행 할 수 있습니다.

    이 코덱에서는 org.apache.hadoop.io.compress.CompressorStream을 각각 org.apache.hadoop.io.compress.DecompressorStream으로 확장하여 Java zip 스트림을 래핑합니다.

    결국 createInputStream 및 createOutputStream 메소드를 대체하고 랩된 스트림의 새 인스턴스를 리턴해야합니다.

    여전히 약간의 코딩이 있기 때문에 어딘가에 이미 기존 구현이 있어야한다고 확신합니다 (수년 전에 Hadoop 릴리스에도 있었음을 기억할 수 있습니다).

  2. from https://stackoverflow.com/questions/11988214/easiest-efficient-way-to-zip-output-of-hadoop-mapreduce by cc-by-sa and MIT license