작성
·
49
·
수정됨
0
안녕하세요 강사님 강의 잘 보고 있습니다
다름이 아니라 특정 조건에서 task가 실행되지 않아 해결방법을 묻고자 글을 남깁니다.
task가 실행되지 않고 발생하는 log
*** Could not read served logs: Invalid URL 'http://:8793/log/dag_id=dags_get_data_python_operator/run_id=manual__2024-12-20T09:11:57.447383+00:00/task_id=refine_data_/attempt=1.log': No host supplied
branch에 따른 dag에 작성한 taskflow는 다음과 같습니다
get_data_ >> check_dir_ >> get_yesterday_data_ >> refine_data_ >> delete_data
get_data_ >> check_dir_ >> refine_data_ >> delete_data
batch 당일 데이터와 전날 데이터를 이용해서 spark를 이용해 정제하는 작업인데,
전날 데이터가 수집되어있지 않다면 수집하고나서 sparksubmit을 하도록 task를 구성했습니다.
전날 데이터가 없는 상태로 dag를 실행하면 전체task가 잘 실행이되고
전날데이터가 존재한다면 원하는 task 까지 skipped이 되고 해당 log가 나오네요 ㅠㅠ
task 플로우를 잘못 작성한 이유일까요 ?
추가)
BranchPython task에 찍힌 log 입니다.
답변 3
0
앗 brianbok97님
원인을 찾으셨군요. 제가 답글이 늦었습니다.
일단 원인은 trigger rule이 맞습니다. 기본이 all_success이기 때문에 refine_data_ 입장에서는 상위가 get_yesterday_data_ task도 상위 중 하나이므로 이 task도 success 해야 수행됩니다.
trigger_rule을 변경하셨다면 one_success 로 바꾸셨을 것 같네요.
정 trigger_rule을 사용하기 꺼려진다면 get_yesterday_data_ task를 수정해서 어제 날짜가 존재한다면 그냥 빠져나오도록 수정하는 것도 괜찮은 방법일 듯 합니다. 그럼 success 로 보이긴 하니깐요.
그리고 spark plugin 도 설치하셨나요? 강의에 없던 내용인데 훌륭하십니다 ^^
0
0
단순한 bash 커멘드도 실행 못하는것 보니 spark 문제는 아닌것 같고,
task flow의 문제인것 같습니다 ㅠㅠ..
이런 방향으로 진행시키고 싶으면 어떻게 작성하면 될까요 ..?
branch에서 쓰는 함수에 return 하는 task를 여러개를 줘야하는건가요??