파일 압축에는 두 가지 주요 혜택, 하나는 저장 파일에 의해 점유 하는 공간을 줄이기 위해, 다른 데이터 전송 속도입니다. Hadoop의 큰 데이터의 맥락에서이 두 점은 특히 중요 하다 그래서 하자 이제 Hadoop에서 파일 압축을 봐.
Hadoop 다양 한 압축 포맷을 지원 하 고 우리 테이블을 보면:
폐는 LZ77 알고리즘 및 Huffman 인코딩을 사용 하 여 무손실 데이터 압축 알고리즘 (퍼레이드 http://www.aliyun.com/zixun/aggregation/1552.html "> 코딩"). Zlib 라이브러리에서 소스 코드를 찾을 수 있습니다. Gzip은 알고리즘에 따라 폐 알고리즘입니다.
모든 압축 알고리즘 공간 및 시간 변환, 빠른 압축 시간 또는 더 작은 압축 비율, 매개 변수에서 지정할 수 있습니다-1 의미 공간을 의미 하는 속도,-9. 예를 들어, 다음과 같은 의미 빠른 압축 gzip을 복용:
[일반] 보기 plaincopy
Gzip-1 파일
시간 및 공간 무역-오프 Gzip는 더 관람해, 보다 더 효율적인 gzip bzip2 압축 하지만 느린. BZIP2 압축 해제 압축 속도 보다 더 빠른 하지만 그것은 느린 한 압축 효과 분명 최고의. 성급 그리고 lz4 Lzo 보다 감압에 훨씬 더 있습니다.
나뉠 여부 압축 형식 분할 될 수 있습니다, 즉, 또는 하지를 읽을 지 여부를 나타냅니다. 압축 된 데이터는 mapreduce 또는 하지 수, 여부를 수 있는 압축 데이터 세그먼트이 중요 합니다.
예를 들어 압축 되지 않은 파일은 1GB 크기 고 HDFs의 기본 블록 크기는 64 MB 파일 MapReduce, 혼자 지도 작업을 사용 하 여 각 입력으로 16 블록으로 나눕니다. 파일은 이미 압축 된 경우 gzip, 16 블록으로 분할 되는 경우 각 블록은 분명 적절 한, 그것은 gzip 압축 된 스트림에서 읽을 수 있기 때문에 하나의 입력으로 이루어집니다. 사실, MapReduce 처리 압축 형식 파일 그것이 gzip 압축된 파일은 Gzip을 지원 하지 않습니다 실현 다음 읽을 때, 그것은 처리 지도에 16 조각, 비 로컬 처리 지도 작업을 많이 있을 것입니다, 그리고 전체 과정은 꽤 오랜 시간이 걸릴 것입니다.
Lzo 압축 형식 같은 문제에 영향을 수도 있습니다 하지만 Hadoop Lzo 라이브러리 인덱싱 도구를 사용 하 여을 Lzo 나뉠 지원. BZIP2 나뉠 지원합니다.
압축 포맷을 어떻게 선택 합니까? 압축 도구를 사용 하면 파일의 크기에 따라 다음과 같은 몇 가지 선택 제안, 낮은 종류에서 높은 효율성:
1. 압축 및 나뉠 시퀀스 파일 등 지원, rcfile 또는 우리가 나중에 얘기 하자 아 브로 파일을 포함 하는 일부 파일 형식을 사용 합니다. 만약 LZO, LZ4 또는 고속 압축 따위 압축된 형식을 사용할 수 있습니다.
2. 나뉠 Lzo bzip2 같은 나뉠 압축 포맷을 사용 하 여 인덱싱 지원 될 수 있습니다.
3. 사전에 여러 블록으로 파일, 각 블록 개별적으로 압축, 그래서 나뉠의 문제를 고려 하는 필요 없음
4 파일을 압축 하지.
그것은 나뉠, 지원 하지 않는 압축된 된 형식에는 대용량 데이터 파일을 저장 하는 적절 한 그리고 비 로컬 처리의 효율은 매우 낮다.
톰 화이트, 위대한 하나님의 확실 한 가이드에서 주로이 문서 감사 합니다 하지만 번역의 중국어 버전은 너무 나쁜, 그들의 자신의 이해의 일부 추가 원래 영어 몇 가지 공식 문서 기준.
그것은 모든 독서 노트입니다.