TEZ 엔진을 이용할 때 메모리 부족 오류가 발생하는 곳은 AM과 MR 작업 중에 발생한다.
AM은 다음의 설정으로 메모리를 설정한다.
// AM의 메모리
set tez.am.resource.memory.mb=2048;
// AM이 사용할 힙메모리 사이즈(tez.am.resource.memory.mb의 80%)
set tez.am.java.opts=-Xmx1600m;
그리고 MR 작업에서 메모리를 설정하는 방법은 다음과 같다.
// tez 작업을 진행하는 컨테이너의 메모리 크기
set hive.tez.container.size=2048;
// 컨테이너에서 사용할 수 있는 힙의 메모리 크기
set hive.tez.java.opts=-Xmx1600m; // hive.tez.container.size의 80%
// 출력결과를 정렬해야 할 때 사용하는 메모리
set tez.runtime.io.sort.mb=800; // hive.tez.container.size의 40%
// 맵조인에 사용하는 메모리
set hive.auto.convert.join.noconditionaltask.size=600; // 33%
반응형
'빅데이터 > hive' 카테고리의 다른 글
[hive] 쿼리 실행중 MetaException 발생시 오류 처리 (0) | 2018.12.04 |
---|---|
[hive] inline() 함수를 이용하여 JSON 문자열 테이블화 예제 (0) | 2018.11.21 |
[hive][tez] tez의 실행 시간 요약 확인을 위한 옵션(hive.tez.exec.print.summary)및 GC시간의 하이브 튜닝 (0) | 2018.07.11 |
[hive][error] 셔플 과정에서 발생하는 OutOfMemoryError: Java heap space, error in shuffle in fetcher 오류 해결방법 (0) | 2018.07.02 |
[hive] 하이브 데이터베이스 이름 변경(hive database rename) (0) | 2018.05.25 |