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

[hive] Gzip파일 처리 중 Unexpected end of input stream 오류 해결 방법

by hs_seo 2020. 7. 17.

하이브에서 Gzip 파일로 작업 할 때 0byte 파일이 존재하면 아래와 같이 Unexpected end of input stream 오류가 발생합니다.

Caused by: java.io.EOFException: Unexpected end of input stream
    at org.apache.hadoop.io.compress.DecompressorStream.decompress(DecompressorStream.java:165)
    at org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:105)
    at java.io.InputStream.read(InputStream.java:101)
    at org.apache.hadoop.util.LineReader.fillBuffer(LineReader.java:182)
    at org.apache.hadoop.util.LineReader.readDefaultLine(LineReader.java:218)
    at org.apache.hadoop.util.LineReader.readLine(LineReader.java:176)
    at org.apache.hadoop.mapred.LineRecordReader.skipUtfByteOrderMark(LineRecordReader.java:215)
    at org.apache.hadoop.mapred.LineRecordReader.next(LineRecordReader.java:253)
    at org.apache.hadoop.mapred.LineRecordReader.next(LineRecordReader.java:48)
    at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.doNext(HiveContextAwareRecordReader.java:360)
    ... 22 more

또한 어떠한 이유로 Gzip 파일을 압축해제할 수 없는 경우에도 발생할 수 있습니다. 오류의 원인이 되는 파일을 확인할 때 hadoop fs -text 명령으로 확인하면 0byte파일은 파일을 읽는 시점에 오류가 발생하지 않습니다.

아래와 같이 로컬에 다운로드 해서 압축해제를 하면 오류를 확인할 수 있습니다. 따라서 오류가 발생하면 로컬에서 확인하는 것도 원인을 확인하는 방법이 될 수 있습니다.

$ gunzip sample.gz

gzip: sample.gz: unexpected end of file
반응형