기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EMR 클러스터의 출력을 압축하는 방법
데이터 처리로 인해 발생하는 출력을 압축하는 여러 방법이 있습니다. 사용하는 압축 도구는 데이터의 속성에 따라 다릅니다. 압축은 대량의 데이터를 전송할 때 성능을 개선할 수 있습니다.
출력 데이터 압축
이 기능은 하둡 작업의 출력을 압축합니다. TextOutputFormat을 사용 중인 경우 결과가 gzip 압축된 텍스트 파일로 출력됩니다. SequenceFiles에 쓰려는 경우 결과가 내부적으로 압축되는 SequenceFile로 출력됩니다. 구성 설정 mapred.output.compress를 true로 설정하여 이 기능을 활성화할 수 있습니다.
스트리밍 작업을 실행 중인 경우 스트리밍 작업을 이러한 인수로 전달하여 활성화할 수 있습니다.
-jobconf mapred.output.compress=true
또한 부트스트랩 작업을 사용하여 모든 작업 출력을 자동으로 압축할 수도 있습니다. 다음은 Ruby 클라이언트를 사용하여 이 작업을 수행하는 방법입니다.
--bootstrap-actions s3://elasticmapreduce/bootstrap-actions/configure-hadoop \ --args "-s,mapred.output.compress=true"
마지막으로 사용자 지정 Jar를 작성하려는 경우 작업 생성 시 다음 행을 사용하여 출력 압축을 활성화할 수 있습니다.
FileOutputFormat.setCompressOutput(conf, true);
중간 데이터 압축
작업이 상당한 양의 데이터를 매퍼에서 reducer로 재편성하는 경우 중간 압축을 활성화하면 성능이 향상될 수 있습니다. 맵 출력을 압축하고 코어 노드에 도착할 때 압축을 해제합니다. 구성 설정은 mapred.compress.map.output입니다. 출력 압축과 비슷하게 이 기능을 활성화할 수 있습니다.
사용자 지정 Jar를 작성하려는 경우 다음 명령을 사용합니다.
conf.setCompressMapOutput(true);
Amazon EMR에서 Snappy 라이브러리 사용
Snappy는 속도에 최적화된 압축/압축 해제 라이브러리입니다. Amazon EMR AMI 버전 2.0 이상에서 제공되며 중간 압축을 위한 기본값으로 사용됩니다. Snappy에 대한 자세한 내용은 http://code.google.com/p/snappy/