티스토리 뷰
빅데이터/hive
[hive] common.JvmPauseMonitor (JvmPauseMonitor.java:run(194)) - Detected pause in JVM or host machine (eg GC): pause of approximately 1727ms 메시지
hs_seo 2019. 7. 1. 17:39최근 hive 작업을 진행하면서 하이브 메타스토어의 연결이 자주 끊어지는 현상이 발생하였습니다. 이 문제를 확인하기 위해서 로그를 확인하였는데 다음과 같은 메시지를 확인할 수 있었습니다. 이 메시지는 어떤 이유(보틍은 GC작업)에 의해서 JVM이 멈췄다는 것을 이야기 하고 있습니다.
2019-05-20T08:20:23,695 INFO [org.apache.hadoop.hive.common.JvmPauseMonitor$Monitor@503a5861([])]: common.JvmPauseMonitor (JvmPauseMonitor.java:run(194)) - Detected pause in JVM or host machine (eg GC): pause of approximately 1727ms
2019-05-20T08:20:25,670 INFO [org.apache.hadoop.hive.common.JvmPauseMonitor$Monitor@503a5861([])]: common.JvmPauseMonitor (JvmPauseMonitor.java:run(194)) - Detected pause in JVM or host machine (eg GC): pause of approximately 1310ms
2019-05-20T08:20:27,931 INFO [org.apache.hadoop.hive.common.JvmPauseMonitor$Monitor@503a5861([])]: common.JvmPauseMonitor (JvmPauseMonitor.java:run(194)) - Detected pause in JVM or host machine (eg GC): pause of approximately 1761ms
원인
이 오류가 발생한 원인을 확인한 결과 다음과 같았습니다. 요약하면 많은 파티션으로 인한 GC로 메타스토어의 JVM이 멈추는 것이 원인이었습니다.
- 하나의 테이블에 매일 파티션이 2000개 정도 생성됨
- 누적되면서 현재 파티션이 20만개 정도 생성되었음
- 데이터를 입력, 조회할 때마다 하이브 메타스토어가 파티션 정보를 읽음
- 메모리에 많은 데이터를 올려서 GC가 오래 걸림
- 하이브 메타스토어가 응답이 없어서, 관리 프로세스가 메타스토어를 재기동
- 메타스토어가 재기동 하면서 기존 연결된 세션이 끊어짐
해결방안
이 문제는 테이블의 구조를 변경하여 과도한 파티션이 생성되지 않도록 수정하였습니다. 그리고 동시에 버켓팅을 이용하여 하루에 생성되는 파티션 개수를 10개 내외로 줄일 수 있었습니다. 파티션이 많아지면 데이터가 저장되는 사이즈를 줄일 수 있지만, 조회시에 메타스토어에 부담을 줄 수 있기 때문에 적당한 개수를 유지하는 것이 좋습니다.
반응형
'빅데이터 > hive' 카테고리의 다른 글
[hive] 테이블 DROP 시 발생하는 Caused by: MetaException(message:Timeout when executing method: drop_table_with_environment_context; 69853ms exceeds 60000ms) 오류 (0) | 2019.07.29 |
---|---|
[hive] TEZ 작업중 GC overhead limit exceeded 오류 처리 (0) | 2019.07.05 |
[hive] 하이브 테이블 조회시 파티션 개수 제약하기 (0) | 2019.05.22 |
[hive] TEZ엔진을 이용한 UNION ALL INSERT문에서 서브디렉토리 생성을 막는 방법 (0) | 2019.04.09 |
[hive] explain을 이용하여 CBO 적용 여부 확인 (0) | 2019.04.05 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- SQL
- Tez
- nodejs
- 다이나믹
- bash
- 오류
- 하둡
- HDFS
- 파이썬
- hbase
- emr
- AWS
- Python
- 하이브
- Hadoop
- oozie
- HIVE
- Linux
- java
- error
- 알고리즘
- S3
- airflow
- yarn
- 정올
- mysql
- 백준
- ubuntu
- build
- SPARK
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함