티스토리 뷰
반응형
flink 에서 hive 를 연동할때, catalog 를 등록하면 바로 테이블 조회가 가능하다. 그런데 최대 슬롯은 10개이고, 여유 슬롯이 7개뿐인데 터무니없이 크게 task 를 할당해서 작업이 취소되는 경우가 발생했다. 다음과 같이 간단한 쿼리를 실행했더니 터무니없이 큰 640개의 task 가 요구되었고 당연히 리소스 부족으로 종료되었다. 해결하는 방법은 hive source 의 parallel 을 제한하면 해결된다.
Flink SQL> CREATE CATALOG myHive with (
'type' = 'hive',
'hive-conf-dir' = '/usr/hdp/2.6.2.0-205/hive/conf'
);
Flink SQL> select count(*) from myHive.myDb.t_sample where ymd = '2021-03-01';
[INFO] Result retrieval cancelled.
해결방법
"table.exec.hive.infer-source-parallelism.max" 설정이 기본 1000개이므로 이 설정값을 낮추면 된다.
참고로 10개의 슬롯만 가용가능하기 때문에 5 수준으로 낮춰서 돌리면, 다음과 같이 640개라는 터무니없이 큰 리소스를 요청하지 않고 실행에 성공한다. (기존에는 리소스를 기다리다가 할당못받고 취소되버렸음)
Flink SQL> set table.exec.hive.infer-source-parallelism.max=5;
[INFO] Session property has been set.
Flink SQL> select count(*) from myHive.myDb.t_sample where ymd = '2021-03-01';
EXPR$0
----------------------
343423324
참고로 관련된 설정에 대한 설명은 flink 의 document 를 참고하면된다.
반응형
'데이터처리 > Flink' 카테고리의 다른 글
[Flink] streaming-source.enable 기능이 동작 안하는 이유? - 파티션갯수 (0) | 2022.04.21 |
---|---|
[Flink] Hive Streaming Source 기능 소개 - unbounded scan (0) | 2022.04.19 |
[Flink] yarn-session.sh 오류 : java.lang.NoClassDefFoundError (0) | 2022.03.18 |
Flink sql 에서 필드 변경하는 꼼수 - 필드 타입 / 이름 (0) | 2022.03.04 |
[Flink] Yarn 환경에서 세팅시 high-availabillity.cluster-id 충돌문제 (0) | 2022.02.16 |
댓글