월 29,040원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨Airflow 마스터 클래스
docker 폴더 관련 질문
안녕하세요좋은 강의 감사드립니다. 섹션 7 custom operator 실습(마지막 강의) 16:11 부분에 보시면요폴더 구조를 아래와 같이 만들어놓으셨더라고요 조금 이해가 안되는게, 왜 dags 폴더를 airflow 바깥에도 만들어놓시고 안에도 만들어놓으신거죠?logs는 또 airflow 폴더 밖에 있고요. 강의 16:16 에 보면, dags는 airflow 안에 있는 것을 사용하고 계신것 같은데, (2) airflow 밖에 있는 dags 폴더를 만드신 이유, 그리고 (2) 왜 logs 폴더는 dags, plugins 와 다르게 airflow 밖에 만드셨는지 가 궁금합니다.
- 미해결Airflow 마스터 클래스
scheduled slot의 개수도 제한이 있나요?
예전에 airflow를 쓰면서 DAG의 task가 스케쥴에 따라서 실행되지 않았던 적이 있습니다. 실행될 시간인데 scheduled상태로도 들어가지 않고 아예 사라졌다가 한참 후에 다시 scheduled되어서 중간에 실행되지 않는 시간이 많이 생겼습니다. 당시에는 pool의 slot수를 늘리니 해결이 되긴 했습니다. 그런데 강의에 따르면 slot수에 scheduled는 영향을 주지 않는 것으로 이해가 됐습니다.혹시 scheduled도 따로 slot개수를 가지게 되는건가요? p.s. 그때는 몰랐지만 airflow가 너무 자주 실행하는 경우에는 적합하지 않다는 거는 알게된 경험이었습니다. 당시 스케쥴은 1분마다 실행시키는 DAG들을 많이 만들었거든요
- 미해결Airflow 마스터 클래스
2-4 fruit operator 관련 오류 질문
선생님 안녕하세요 좋은 강의 감사합니다. 2-4 강의에서 select fruit 하는 부분에서 오류가 생겨서 질문 드립니다. 참고로 저는 리눅스가 아니라 docker on window를 사용하고 있습니다.윈도우 상에서 bash 를 사용하는데 오류가 발생하는 것 같은데 해결방법을 모르겠어서요 저의 select_fruit.sh 는 아래와 같고요FRUIT=$1if [ $FRUIT == APPLE ];then echo "You selected Apple!"elif [ $FRUIT == ORANGE ];then echo "you selected Orange!"elif [ $FRUIT == GRAPE ];then echo "You selected Grape!"else echo "You selected other fruits!"fi 이것을 git bash 상에서 돌려보면 잘 돌아갑니다. 그런데, 윈도우 cmd에서 bash 로 돌리면 apple과 orange에 대해서도 다른 과일을 골랐다는 오류가 뜨고요 그리고 airflow dag을 실행시켜도 같은 오류가 뜹니다. git bash에서 제대로 결과가 나오는걸 보면 sh 파일 자체에는 문제가 없는것 같은데, airflow 상에서 실행이 안되는 이유가 무엇일까요 ㅠ
- 미해결Airflow 마스터 클래스
aws ec2 로 해도 되나요
안녕하세요혹시 wsl이 아니로 aws에 ec2로 우분투 서버를 만들어서 강의를 진행해도되나요? 혹시 강의 뒷부분에서 문제?가 생길만한 여지나 부분이 있는지 궁금합니다 (예를 들어, vscode와 연결하는 등에서요) 그리고 혹시 docker on desktop 을 사용하지 않으신 이유가 따로 있으신가요..?
- 미해결Airflow 마스터 클래스
postgreSQL과 연결 시 오류
- connection 설정- password authentication failed for user "xnaud" docker-compose.yaml 파일 설정dags코드 이렇게 설정했는데 dags를 실행 시 password authentication failed for user "xnaud" 라는 메세지가 계속 뜨고 있습니다 ㅠ 혹시 원인이 뭘까요?
- 해결됨Airflow 마스터 클래스
'[섹션 8. Connection & Hook] Postgres 컨테이너 올리기' 강의에서 sudo docker compose up 명령어가 제대로 실행되지 않습니다.
이전까지는 도커 서비스를 잘 수행이 됐었습니다. 이번 강의에서 docker-compose.yaml파일을 수정 후 서비스를 내렸다가 다시 올리려고 하니 사진처럼 해당 로그까지만 찍힌 후에 더 이상 진행이 되지 않고 있습니다. 계속 기다려봐도 상태가 그대로인 것을 보아하니 어딘가 문제가 생긴 것 같습니다.yaml파일은 올려주신 파일과 비교해봤을 때 오타나 다른 문제는 없는 것 같습니다. 원래의 docker-compose.yaml로 교체하면 잘 실행이 되는 상태입니다. 뭐가 문제일까요?
- 미해결Airflow 마스터 클래스
Email Operator 메일전송 실패 원인이 알수 없네요
강의 내용대로 gmail 세팅 / docker-compose.yaml 적용 후 airflow dag 작성후, 실행을 했는데.. 'smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted.' 로 Error가 납니다. airflow 실행로그 첨부합니다. 답변 기다리겠습니다. 감사합니다.
- 해결됨Airflow 마스터 클래스
[ERROR] Max retries exceeded with url
task실행 하면 api호출이 안되고 requests에서 에러가 나옵니다requests.exceptions.ConnectionError: HTTPConnectionPool(host='http', port=80): Max retries exceeded with url: //openapi.seoul.go.kr:8088/***/json/TbCorona19CountStatus/1/1000/?Content-Type=application%2Fjson&charset=utf-8&Accept=%2A%2F%2A (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fbc7dac3fa0>: Failed to establish a new connection: [Errno -2] Name or service not known')) 그런데 postman이든 브라우저든 다른 곳에서는 정상척으로 호출하고 이전에 SimpleHttpOperator도 정상적으로 모두 호출합니다.왜 연결이 안되고 Max retries가 뜨는지 잘 모르겠어요 ㅠ혹시 while문에서 너무 빨리호출하나 싶어서 time.sleep도 넣어봤지만 차이 없네요
- 미해결Airflow 마스터 클래스
강좌 진도율
안녕하세요. Airflow Master 강좌를 듣고 있습니다. 해당 강좌를 완강한 거 같은데.. 진도율이 100%가 안되네요그래서 수료증(완강표시된) 출력을 못하고 있습니다. 어떻해야 하는지 알려주세요.. 많은 강좌중 제가 놓친강좌가 무엇인지 파악할 수가 없네요 . 감사합니다.
- 미해결Airflow 마스터 클래스
Email Operator로 메일 전송하기 실패
Email Operator로 메일 전송하기 강의 실습을 진행하다가 에러가 나서 질문 남깁니다.dag 실행 로그가 아래와 같이 찍히고, 실패 하는데 어떤 부분이 잘못되어서 이런 건지 모르겠습니다...[2023-11-15, 14:06:59 UTC] {warnings.py:109} WARNING - /home/***/.local/lib/python3.8/site-packages/***/utils/email.py:154: RemovedInAirflow3Warning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead. [2023-11-15, 14:06:59 UTC] {configuration.py:1050} WARNING - section/key [smtp/smtp_user] not found in config [2023-11-15, 14:06:59 UTC] {taskinstance.py:1937} ERROR - Task failed with exception [2023-11-15, 14:06:59 UTC] {standard_task_runner.py:104} ERROR - Failed to execute job 73 for task send_email_task ([Errno 99] Cannot assign requested address; 618)
- 해결됨Airflow 마스터 클래스
bashoperator에 외부 쉘파일 수행하기
안녕하세요 강사님~airflow를 이제 막 배우는 학생입니다.다름이 아니라 bashoperator에 외부 쉘파일 수행하기에서 airflow에서 dag을 실행하면 해당 경로를 찾을 수 없다고 나와서요제가 root 계정으로 실습 진행하고 있는데 opt를 root 경로로 바꿔봐도 동일한 증상이 계속됩니다.추가로 py 코드에서 경로를 왜 opt로 주셨는지도 궁금합니다!
- 해결됨Airflow 마스터 클래스
섹션2 1장 docker-compse.yaml위치 설정
docker-compse.yaml 위치는 C:\Windows\System32에 있습니다. airflow파일은 C:\tool\airflow여기에 있습니다.${AIRFLOW_PROJ_DIR:-.}/dags:/opt/airflow/dags 이부분을 어떻게 고쳐야할까요?
- 해결됨Airflow 마스터 클래스
dag 스케줄링 관련
안녕하세요? 좋은 강의에 진심으로 감사드립니다. 책으로 공부했으면 아직 헤매고 있을텐데, 친철하게 설명해 주셔서 그동안 들었던 강의를 바탕으로 어제 data.go.kr에서 기상청이 제공하는 대기정체지수를 다운로드 받는 dag을 만들어 수동으로 실행을 해보니, 수동으로는 csv 파일 생성까지 success가 되는 것을 확인하였습니다. 그런데 오늘 새벽에 자동으로 실행이 되도록 컴퓨터를 켜두었었는데, 아침에 보니 돌아가지 않았습니다. ㅠㅠ DAG에 크론 일정은 "0 5 \* \* \*"로 주고 , start_date는 어제 날짜 2023. 11. 5. in_timezone('Asia/Seoul')로 주었었습니다. (매일 새벽 5시에 돌아서 전일자로 업데이트된 데이터를 받고자 하였습니다.) airflow를 직접 사용해 보니 UTC와 KST가 혼재되어서 사용시에 헷갈리기도 하고, 실제로 제가 만들어 보니 권한 문제, 패키지 추가 문제 등 여러가지 난관에 봉착했었습니다만, 여기 질문 게시판을 참조하면서 모든 문제를 해결할 수 있었는데, 일정 셋팅 관련해서는 제가 아주 기본적인 airflow의 시간 개념을 잘 못 이해하고 있는 것 같아서 질문드립니다. 위의 두가지 말고 따로 확인해야 하는 사항이 있는지요? 여기 게시판의 첫번째 질문도 시간개념이었는데, 읽어봐도 제 입장에서는 제 문제 해결방법이 명확해 지는 것 같지는 않아서 이렇게 폐를 끼치게 되었습니다. 여담입니다만,기상청에서 제공하는 API 데이터들은 1루치 정도만 제공되어서, 매일 접속을 해서 처리를 해두지 않으면 데이터가 사라져 버립니다. 수작업으로 하는 것이 예상보다 피곤하였고, 중간중간 잊고 지나치는 경우가 생겨서, 데이터의 완결성이 떨어지는 등 아쉬운 점이 있었습니다. 제 계획은 노트북을 출근전에는 꺼놓고, 퇴근후 집에와서 WSL에 airflow 도커로 올려서 새로 켜놓고, 새벽에 Dag이 일정대로 돌아서, 아침에 일어나면 데이터들이 제가 원하는 형태대로 정리되고, 이메일로 완료되었다고 노티를 받는 것입니다. 가능할 거라고 보시는지요?
- 미해결Airflow 마스터 클래스
task 데코레이터 사용시 궁금증이 있습니다.
task 데코레이터를 사용하면서부터 함수호출값을 받게 변경되는 점이 궁금합니다. 변경 전def foo(): ... py_task = PythonOperator( python_callable=foo)변경 후@task(task_id='py_task') def foo(): ... py_task = foo() 변경 후에는 foo라는 함수원형을 입력하는 것이 아니라 함수를 호출하게 되는데 데코레이터로 감쌌기 때문에 괜찮아지는 건가요?
- 미해결Airflow 마스터 클래스
task가 실행되지 않습니다.
task가 제대로 수행되지 않습니다작업의 로그를 확인하면아래와 같은 메세지만 나타나구요 *** Could not read served logs: Request URL is missing an 'http://' or 'https://' protocol. 아래에서 저와 같은 증상을 겪은 사람을 찾았습니다만링크메모리 사용량을 늘려서 해결했다고만 나타납니다 저는 이미 WSL의 메모리를 8GB에 swap도 2GB도 준 상태구요... airflow의 worker 자체의 에러로그를 찾아보았더니 아래와 같이 권한 문제가 나타납니다[2023-10-31 15:51:22,188: ERROR/ForkPoolWorker-15] [4c24a6e8-1133-46a5-99ac-5fd6bdb3c730] Failed to execute task [Errno 13] Permission denied: '/opt/airflow/logs/dag_id=dags_bash_operator'.zz5414-airflow-worker-1 | Traceback (most recent call last):zz5414-airflow-worker-1 | File "/usr/local/lib/python3.8/pathlib.py", line 1288, in mkdirzz5414-airflow-worker-1 | self._accessor.mkdir(self, mode)zz5414-airflow-worker-1 | FileNotFoundError: [Errno 2] No such file or directory: '/opt/airflow/logs/dag_id=dags_bash_operator/run_id=manual__2023-10-31T15:51:20.844476+00:00/task_id=bash_t1' worker 컨테이너안의 /opt/airflow/logs/dag_id=dags_bash_operator라는 파일에 권한이 없어서 발생하는 문제로 보입니다. 컨테이너 내부 파일의 권한은 어떻게 설정하는지를 모르겠습니다 제가 만든 dag말고도 example_bash_operator도 마찬가지로 실행되지 않고 같은 에러입니다. 해결해주실 수 있을까요?정말 airflow 열심히 배워보려고 했거든요 ㅠㅠ
- 미해결Airflow 마스터 클래스
WSL 설치
WSL 설치시 하위시스템이 이미 설치되어있습니다.라고 나오는데 Ubuntu 22.04.1 LTS는 없네요.이미지 다운 어떻게 받아서 설치하나요?
- 미해결Airflow 마스터 클래스
"Python Operator에서 Xcom 사용" 강의 질문
안녕하세요.강의 잘 듣고 있습니다. "Python Operator에서 Xcom 사용" 강의에서 task flow가python_xcom_push_by_return = xcom_push_result() xcom_pull_2(python_xcom_push_by_return) python_xcom_push_by_return >> xcom_pull_1()이렇게 되고, 그래프가 python_xcom_push_by_return -> xcom_pull_2python_xcom_push_by_return -> xcom_pull_1 이렇게 그려지는데, 이 경우 처리도 병렬적으로 되나요?아니면 그래프만 저렇게 나오고 실제 동작은파이썬 동작하는 것처럼 윗줄이 먼저 실행되어서 실제로는python_xcom_push_by_return -> xcom_pull_2 -> xcom_pull_1이렇게 실행이 되나요??
- 미해결Airflow 마스터 클래스
Chapter 16 스케줄러 부하 줄이기에 관한 질문입니다.
멀티 스케줄러 환경에서, 각 스케줄러는 Dag ParsingDB에 해당정보를 기록Scheduler Loop의 과정을 거친다고 이해했습니다. 여기서, Dag Parsing에 관한 부분은 DB에 관한 정보를 참고해서 하는것이 아닌 코드만을 가지고서 돌려보는 것으로 이해하고 있는데, 그렇다면 1번 과정(Dag Parsing)은 멀티 스케줄러 환경을 구성한다고 해서 시간 단축의 효과를 얻을 수 없는것인가요?? DAG이 10개가 있고, 스케줄러가 두개가 있다면,1번 스케줄러가 첫번째 DAG를 돌렸고, Lock을 걸은 후, 해당 작업이 큐까지 들어가게 되면 DB에 관한 정보의 Lock을 해제 하나요? 그렇다면 만약 다른 스케줄러가 해당 DAG의 정보를 검색했을때, 해당 DAG에 관한 Scheduler Loop를 돌것이고, 그렇다면 이 상황에서는 멀티스케줄러의 이점을 얻을 수 없는것인지가 궁금합니다. 감사합니다.
- 해결됨Airflow 마스터 클래스
Task 실행관련 질문입니다.
안녕하세요! 'Bash Operator & 외부 쉘파일 수행하기' 강의를 듣고 실습하던 중 에러가 생겨서, 해결을 시도했는데 계속해서 실패해서 질문을 남겨봅니다!airflow를 실행하고 태스크를 수행하면 fail이 뜨는데, 로그를 확인하면 파일을 찾을 수 없다고 합니다. [2023-10-12, 14:12:25 KST] {subprocess.py:93} INFO - /bin/bash: line 1: /opt/***_log/plugins/shell/select_fruit.sh: No such file or directory [2023-10-12, 14:12:25 KST] {subprocess.py:97} INFO - Command exited with return code 127 [2023-10-12, 14:12:25 KST] {taskinstance.py:1935} ERROR - Task failed with exception Traceback (most recent call last): File "/home/airflow/.local/lib/python3.8/site-packages/airflow/operators/bash.py", line 210, in execute raise AirflowException( airflow.exceptions.AirflowException: Bash command failed. The command returned a non-zero exit code 127. 저는 wsl에 디렉토리는 아래 경로처럼 설정했습니다.(select_fruit.sh파일에 실행 권한도 주었습니다.)/airflow_log/plugins/shell/select_fruit.sh 이후 docker-compose.yaml에 volumes 항목을 아래와 같이 설정을 했습니다. ${AIRFLOW_PROJ_DIR:-.}/airflow_log/plugins:/opt/airflow/plugins Vscdoe에서 경로는 아래와 같이 설정을 했습니다.t1_orange = BashOperator( task_id="t1_orange", bash_command="/opt/airflow_log/plugins/shell/select_fruit.sh ORANGE", ) t2_banana = BashOperator( task_id="t2_banana", bash_command="/opt/airflow_log/plugins/shell/select_fruit.sh BANANA", )경로 문제인지, 아니면 다른 문제인지.. 도움 요청해봅니다.저에게 너무 필요한 강의라서 잘 듣고 있습니다! 앞으로도 좋은 강의 부탁드리겠습니다!
- 해결됨Airflow 마스터 클래스
dags 경로 설정 질문 있습니다.
안녕하세요! 현재 Bash operator DAG 만들기 & DAG 디렉토리 셋팅 강의를 수강하고 있습니다.19분 50초 즈음 dags 폴더의 경로를 설정하는 과정에서 git repo 내의 dags를 지정하는 것에 궁금증이 생겨 질문을 작성하게 되었습니다. 만약 제가 다른 repo를 파서 새로운 dags 폴더를 만들게 되면, 그 때는 저 환경 설정을 다시 해야한다고 생각하는데, 이게 맞는지 궁금합니다. 다시 설정을 하지 않으려면, 설정한 dags 안에 모든 dag가 들어가야 하는데, 나중에 헷갈리지는 않을까 걱정이 되어 질문 드립니다. 덕분에 airflow 공부 하는 것이 기대가 됩니다. 좋은 강의 해주셔서 정말 감사합니다.