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

[hive] TEZ 작업중 GC overhead limit exceeded 오류 처리

by hs_seo 2019. 7. 5.

하이브 TEZ작업 중 발생하는 다음의 GC오류는 수행시간의 많은 부분(98%)이 GC에 들어가고, GC를 수행하여도 사용할 수 있는 메모리가 부족(2%가 복구)할 때 발생하는 오류입니다. -XX:-UseGCOverheadLimit 옵션을 이용하여 이 오류가 발생하지 않도록 설정 할 수 있습니다.


자바 프로그램에서는 -Xmx 옵션으로 힙의 용량을 늘여서 해결할 수 있습니다. 하이브에서는 컨테이너의 메모리 용량과 힙의 용량을 늘여서 해결할 수 있습니다.


Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
    at java.util.Arrays.copyOf(Arrays.java:3181)


TEZ 컨테이너의 메모리 증설 방법은 다음과 같습니다. 또한 -XX:-UseGCOverheadLimit 옵션을 이용하여


set hive.tez.container.size=2048;
set hive.tez.java.opts=-Xmx1600m;

set hive.tez.java.opts=-Xmx1600m -XX:-UseGCOverheadLimit;


반응형