복붙노트

[HADOOP] 하이브 gzip 파일 압축 해제

HADOOP

하이브 gzip 파일 압축 해제

HDFS에 많은 .gz 파일을로드했으며 그 위에 원시 테이블을 만들 때 행 수를 계산할 때 이상한 동작이 나타납니다. 압축되지 않은 테이블과 gz 테이블의 count (*) 결과를 비교하면 ~ 85 %의 차이가 발생합니다. gz 압축 파일이있는 테이블의 레코드 수가 적습니다. 이걸 본 사람 있어요?

CREATE EXTERNAL TABLE IF NOT EXISTS test_gz(
  col1 string, col2 string, col3 string)
ROW FORMAT DELIMITED
   LINES TERMINATED BY '\n'
LOCATION '/data/raw/test_gz'
;

select count(*) from test_gz;    result 1,123,456
select count(*) from test;  result 7,720,109

해결법

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

    1.이 문제를 해결할 수있었습니다. 어떻게 든 gzip 파일이 맵 / 축소 작업 (하이브 또는 사용자 정의 Java 맵 / 감소)에서 완전히 압축 해제되지 않았습니다. Mapreduce 작업은 약 450MB의 gzip 파일을 읽고 3.5GZ 파일을 완전히 읽지 않고 HDFS에 데이터를 기록합니다. 이상하고, 전혀 오류가 없습니다!

    이 문제를 해결할 수있었습니다. 어떻게 든 gzip 파일이 맵 / 축소 작업 (하이브 또는 사용자 정의 Java 맵 / 감소)에서 완전히 압축 해제되지 않았습니다. Mapreduce 작업은 약 450MB의 gzip 파일을 읽고 3.5GZ 파일을 완전히 읽지 않고 HDFS에 데이터를 기록합니다. 이상하고, 전혀 오류가 없습니다!

    파일이 다른 서버에서 압축되었으므로 수동으로 압축을 풀고 hadoop 클라이언트 서버에서 다시 압축했습니다. 그 후 새로 압축 된 3.5GZ 파일을 HDFS에 업로드 한 후 전체 파일을 읽는 모든 레코드를 완전히 계산할 수있었습니다.

    마르신

  2. from https://stackoverflow.com/questions/14614126/hive-gzip-file-decompression by cc-by-sa and MIT license