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

[hive] collect_list()와 같은 UDAF 함수의 GC 오류 해결 방법

by hs_seo 2020. 6. 1.

하이브 기본 UDAF를 사용하는 중에 Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded 오류가 발생하는 경우가 있습니다. collect_list(), collect_set()을 이용하는 경우 발생할 수 있는데 너무 많은 데이터가 집계되어 JVM의 힙사이즈를 넘어설 때 많이 발생합니다.

 

이럴 때는 하나의 맵에서 처리하는 데이터를 줄이고, 컨테이너의 메모리를 늘려서 문제를 해결할 수 있습니다.

 

-- 매퍼 개수 조정
set mapreduce.input.fileinputformat.split.maxsize=8000000;
set mapreduce.input.fileinputformat.split.minsize=4000000;
set tez.grouping.max-size=8000000;
set tez.grouping.min-size=4000000;

-- 컨테이너 메모리 조정 
set hive.tez.container.size=4096;
set hive.tez.java.opts=-Xmx3200m;
반응형