Hive 파일 압축
· Version : Hadoop 3.0.0-cdh6.3.2, Hive
하이브를 이용하여 INSERT DIRECTORY, CTAS문으로 파일을 생성할때, 원하는 타입의 형태로 파일을 압축 할 수 있다. 하이브에서 사용할 수 있는 압축 코덱은 다양하다.
· 4mc com.hadoop.compression.fourmc.FourMcCodec
· gzip org.apache.hadoop.io.compress.GzipCodec
· lzo com.hadoop.compression.lzo.LzopCodec
· Snappy org.apache.hadoop.io.compress.SnappyCodec
· bzip2 org.apache.hadoop.io.compress.BZip2Codec
· lz4 org.apache.hadoop.io.compress.Lz4Codec
· org.apache.hadoop.io.compress.GzipCodec
· org.apache.hadoop.io.compress.DefaultCodec
· org.apache.hadoop.io.compress.BZip2Codec
· org.apache.hadoop.io.compress.SnappyCodec
· com.hadoop.compression.lzo.LzoCodec
· com.hadoop.compression.lzo.LzopCodec
압축 하기 위해서는 io.compression.codecs 설정에 압축 포맷이 명시되어 있어야 한다.
<property> <name>hive.exec.compress.intermediate</name> <value>true</value> </property>
<property> <name>hive.exec.compress.output</name> <value>true</value> </property>
<property> <name>mapred.map.output.compression.codec</name> <value>com.hadoop.compression.fourmc.FourMCHighCodec</value> </property> |
압축을 사용하기 위해서는 쿼리를 실행 하기전 처리 결과를 압축하기위한 설정과 코덱을 명시해야한다.
set hive.exec.compress.output=true; set mapreduce.output.fileoutputformat.compress=true; set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.BZip2Codec; |
아래 스크립트는 Gzip으로 압축한다. 압축파일은 지정한 경로에 생성되며 파일 개수는 매퍼와 리듀서의 개수만큼 생성된다.
set hive.exec.compress.output=true; set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
--table의 내용을 /user/tables/ 경로에 CSV 형태로 압축 저장 INSERT OVERWRITE DIRECTORY 'hdfs:///user/tables/' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' SELECT * FROM table ;
--table의 내용을 temp_table 테이블에 저장 CREATE TABLE csvsample ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/user/csv/' AS SELECT * FROM table ; |
Hive에서압축 코덱을 사용하면 디스크 소비를 줄이면서 쿼리의 전체 시간 간격을 축소 할 수 있다.
[참고자료]
· https://acadgild.com/blog/hive-compression-codecs
· https://cwiki.apache.org/confluence/display/Hive/CompressedStorage
· https://cwiki.apache.org/confluence/display/Hive/FileFormats
2020-02-06 / Sungwook Kang / http://sungwookkang.com
Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, Hive, Hive 쿼리, Hive Query, 하이브 파일 압축, Hive File compression
'SW Engineering > Hadoop' 카테고리의 다른 글
HUE에서 10만행이상 브라우저에 출력하기 (0) | 2020.02.19 |
---|---|
Hive 쿼리 - not like (0) | 2020.02.13 |
Hive 파일 Merge (0) | 2020.02.04 |
Hive 통계 정보 (0) | 2020.01.29 |
Hive 쿼리 실행계획 보기 (0) | 2020.01.17 |