티스토리 뷰

반응형

결론부터 말하면, 이 현상은 checkpoint 관련 설정을 적용하고서 나타난 현상이었다. checkpoint 를 모르는 사람을 위해 간단히 쉽게 설명하면 자동세이브 기능을 생각하면 쉽다. 장애의 복구를 위해 중간중간 상태정보를 주기적으로 남기는 기능을 의미하는데,  이 주기가 도달하기전까지 결과를 지연시키는게 아닌가 싶다.

 

결과를 보려면?

내가 겼었던 쿼리 결과가  안나오는 현상은 checkpoint 에서 영향을 받았던 케이스 이기 때문에, 해당설정을 잠깐 줄여서 쿼리를 다시 실행하면 해결되었다. 설정을 영구하게 바꿀게 아니다보니 flink-conf.yaml 의 설정을 건드리는게 아니라 sql-client.sh 상에서 "set" 명령을 통해 확인 및 변경하는것이 좋다. (checkpoint 가 너무 자주 일어나도 안좋을테니)

 

다음과 같이 5분으로 세팅된값을 10초로 바꾸고 실행하면 SELECT 쿼리 날리면 10초내외로 결과가 나올것이다.

Flink SQL> set;
'execution.attached' = 'true'
'execution.checkpointing.interval' = '5min'
..생략..

Flink SQL> set execution.checkpointing.interval=10000;

개인적으로는 insert select 와 같이 sink 가 일어나는 쿼리에서만 checkpoint 주기에 영향을 받고, 단순 select 에서는 영향을 안받는게 더 합리적일 것같은데, 우선은 이렇게 해결하고 있다.

checkpoint 와 결과의 영향?!

처음에는 이 문제를 우회하는 방법도 몰라서 많이 헤맸는데 알게된게 hdfs 에서 sink 할때 최종결과물이 checkpoint 의 주기에 영향을 받는걸 알게된적이 있었다. 역시 삽질을 많이 해야 실마리가 쌓이는듯 하다

https://ngela.tistory.com/8?category=1001093 

 

[오류] Flink에서 HDFS 데이터 Sink 할때 inprogress 로 flush 안되는 현상

flink 에서 Kafka 의 데이터를 hdfs 에 Sink 테스트하는데 이상하게 inprogress 파일형태로 중간파일만 생성하고, 최종적으로 flush 가 안되는 상황으로 삽질했었는데, 결론부터 말하면 checkpoint 를 설정해

ngela.tistory.com

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 29 30 31
글 보관함