본문 바로가기
빅데이터/hive

[hive] 하이브 처리 결과를 gzip으로 압축하는 방법

by hs_seo 2019. 4. 3.

하이브 처리 결과를 gzip으로 압축하여 출력할 때는 다음과 같이 사용합니다.

 

  • hive.exec.compress.output: 출력결과의 압축 여부를 설정
  • mapred.output.compression.codec: 압축 코덱을 설정. core-site.xml의 io.compression.codecs에 설정된 값을 사용

 

set hive.exec.compress.output=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

-- 조회결과를 gzip으로 압축하여 출력 
INSERT OVERWRITE DIRECTORY 'hdfs:///user/tables/'
SELECT *
  FROM table
 WHERE name = 'csv'
;

-- 조회결과를 gzip으로 압축하여, CSV 형태로 출력 
INSERT OVERWRITE DIRECTORY 'hdfs:///user/tables/'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
SELECT *
  FROM table
 WHERE name = 'csv'
;

-- CTAS 문을 이용한 처리 
CREATE TABLE csvsample
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/user/csv/'
AS 
SELECT *
  FROM table
 WHERE name = 'csv'
;

처리 결과는 다음과 같이 .gz 파일로 생성됩니다.

$ hadoop fs -ls /user/csv/
-rwxr-xr-x   2 hadoop hadoop   72361505 2019-04-03 08:05 /user/csv/000000_0.gz
-rwxr-xr-x   2 hadoop hadoop   74060122 2019-04-03 08:05 /user/csv/000001_0.gz
-rwxr-xr-x   2 hadoop hadoop   60733841 2019-04-03 08:05 /user/csv/000002_0.gz
반응형