묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Airflow 마스터 클래스
airflow에 필요 패키지 설치방법 문의
안녕하세요!유튜브 API로 댓글 받아온 뒤, 텍스트 처리 후 postgres DB에 업로드하는 DAG 생성 py파일을 스터디 중에 있는데요.텍스트 처리할 때 필요한 아래 패키지를 설치하려고 다음과 같은 시도를 했습니다.# wsl에서 root 계정으로 진입 sudo docker exec -u root -it <계정명>-airflow-webserver-1 /bin/bash # 필요한 패키지 설치 apt-get update apt-get install default-jdk -y #Airflow 사용자로 전환su - airflow #패키지 설치pip install JPype1 pip install konlpy #컨테이너 종료 및 재시작sudo docker-compose down sudo docker-compose up 하지만 airflow UI에서는 다음과 같은 에러로 DAG를 만든 py파일이 보이지 않습니다.Broken DAG: [/opt/airflow/dags/youtube_to_postgres.py] Traceback (most recent call last): File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/opt/airflow/dags/youtube_to_postgres.py", line 5, in <module> from konlpy.tag import Okt ModuleNotFoundError: No module named 'konlpy' 필요한 패키지를 설치하는 방법이 잘못되었을까요? 제가 설치해야하는 것들을 설치하는 방법을 알려주시면 감사하겠습니다!apt-get install default-jdk -ypip install JPype1 pip install konlpy
-
미해결Airflow 마스터 클래스
airflow를 도커없이 돌리면 안되나요?
안녕하세요. 에어플로우 wsl 설치할때 도커를 설치하는데요.클라우드에서도 그렇고 윈도우에서도 그렇고 우분투 위에서 그냥 airflow 설치하면 안되나요?꼭 도커를 써야하나요?
-
미해결Airflow 마스터 클래스
docker 설치 과정에서 Certification 문제
안녕하세요.Airflow 설치 과정에서 도커 설치 하려는데sudo apt-get update 치면Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown. Could not handshake: Error in the certificate verification. 라고 뜹니다.구글링해서 https://velog.io/@hyojinnnnnan/%EB%A6%AC%EB%88%85%EC%8A%A4-curl-60-SSL-certificate-problem-unable-to-get-local-issuer-certificate 참고하여 보안 파일에 download.docker.com 를 추가했는데도 계속 동일한 오류가 뜨는데 어떻게 해결할 수 있나요? ㅠㅠ답변 부탁드립니다.
-
미해결Airflow 마스터 클래스
아래 프로젝트가 가르쳐주신 내용으로 가능한 수준인지 문의드립니다.
현재 커리큘럼을 모두 수강 후에 아래 실습이 가능한지 여쭤봅니다!(파이썬으로 단순 분석 및 크롤링은 가능하다는 전제하에 airflow 배치 및 기타 기술적인 요소에 대해 궁금합니다.) 1~2주에 한번 배치 작업 Task 1 유튜브 A 채널의 영상 자막 + 댓글 크롤링Task 2 크롤링 된 컨텐츠 별 자막 내용에 기반하여 ChatGPT를 활용한 영상 내용 요약 -> 블로그 포스팅Task 3 컨텐츠별 자막 텍스트 분석으로 컨텐츠별 조회수, 댓글 수 , 긍부정 비율 대시보드 시각화 파이썬으로 크롤링 코드 및 텍스트분석이 가능하다는 전제하에,위 TASK들을 AIRFLOW를 사용해 자동화하는 프로젝트를 현재 영상에서 알려주시는 지식으로 구현가능한지궁금합니다!아직 끝까지 수강 전이라 질문의 내용이 부족할 수 있지만, 블로그포스팅 자동화, 대시보드 시각화 내용이 있는 듯 해서 여쭤봅니다!그리고 현재 커리큘럼에는 Api로 데이터 받아오는 실습만 있는데, 크롤링으로 데이터를 가져오게되면 달라지는 부분이 많을지도 궁금합니다.
-
미해결Airflow 마스터 클래스
어느순간 dags에 업로드해도 업로드가 되지않네요
airflow에서 잘되다가 윈도우 업데이트 이후 dags에 파일을 새로 생성해도 airflow에 추가가 되지 않습니다.해결을 어떻게 해야할까요?vlomes에 경로도 수정했이미 올라와있는 dags는 코드를 수정하면 반영은 되더라고요,
-
해결됨Airflow 마스터 클래스
data_interval_start가 배치일로 나오는 이유 문의
안녕하세요.우선 강사님, 좋은 강의 잘 듣고 있습니다. [섹션 5. Template Variable > Airflow 날짜개념] 강의 관련하여 질문 드립니다. Airflow 2.10.0 버전 사용 중이며, 강의와 같이 테스트를 진행하였는데, data_interval_start이 이전 배치일이 아닌 배치일로 나와서 문의드립니다.DAG의 start_date를 2024년 9월 1일로 설정 후 소급 처리하였습니다. 아래와 같이 dag_run이 배치일일텐데, 왜 data_interval_start가 이전 배치일(2024.08.31)이 아닌 배치일로 나올까요?'dag_run': <DagRun dags_python_show_templates @ 2024-09-01 00:30:00+00:00: scheduled__2024-09-01T00:30:00+00:00, state:running, queued_at: 2024-09-06 09:11:26.187022+00:00. externally triggered: False>,'data_interval_end': DateTime(2024, 9, 2, 0, 30, 0, tzinfo=Timezone('UTC')),'data_interval_start': DateTime(2024, 9, 1, 0, 30, 0, tzinfo=Timezone('UTC')),'ds': '2024-09-01',
-
미해결Airflow 마스터 클래스
email operator dag 수행 시 오류
강의 내용대로 진행하여 dag파일 수행 시 아래와 같은 오류가 뜹니다.ㅠ 해결방법 알려주세요!!credential 에러인 듯한데, IMAP설정, 앱 비밀번호 설정, yaml파일 수정은 모두 완료했었습니다.! 6645fe320334 *** Found local files: *** /opt/airflow/logs/dag_id=dags_email_operator/run_id=manual__2024-09-01T09:02:54.442821+00:00/task_id=send_email_task/attempt=1.log [2024-09-01, 09:02:58 UTC] {local_task_job_runner.py:123} ▶ Pre task execution logs [2024-09-01, 09:02:59 UTC] {warnings.py:112} WARNING - /home/**/.local/lib/python3.12/site-packages/***/utils/email.py:155: RemovedInAirflow3Warning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead. send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) [2024-09-01, 09:02:59 UTC] {email.py:272} INFO - Email alerting: attempt 1 [2024-09-01, 09:03:00 UTC] {taskinstance.py:3301} ERROR - Task failed with exception Traceback (most recent call last): File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 767, in executetask result = executecallable(context=context, **execute_callable_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 733, in executecallable return ExecutionCallableRunner( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/operator_helpers.py", line 252, in run return self.func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/baseoperator.py", line 406, in wrapper return func(self, args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/operators/email.py", line 79, in execute send_email( File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 80, in send_email return backend( ^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 155, in send_email_smtp send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 282, in send_mime_email smtp_conn.login(smtp_user, smtp_password) File "/usr/local/lib/python3.12/smtplib.py", line 739, in login (code, resp) = self.auth( ^^^^^^^^^^ File "/usr/local/lib/python3.12/smtplib.py", line 641, in auth response = encode_base64(initial_response.encode('ascii'), eol='') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 26: ordinal not in range(128) [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task instance in failure state [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task start:2024-09-01 09:02:59.026829+00:00 end:2024-09-01 09:03:00.894255+00:00 duration:1.867426 [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Task:<Task(EmailOperator): send_email_task> dag:<DAG: dags_email_operator> dagrun:<DagRun dags_email_operator @ 2024-09-01 09:02:54.442821+00:00: manual__2024-09-01T09:02:54.442821+00:00, state:running, queued_at: 2024-09-01 09:02:54.472998+00:00. externally triggered: True> [2024-09-01, 09:03:00 UTC] {logging_mixin.py:190} INFO - Failure caused by 'ascii' codec can't encode character '\xa0' in position 26: ordinal not in range(128) [2024-09-01, 09:03:00 UTC] {taskinstance.py:1225} INFO - Marking task as FAILED. dag_id=dags_email_operator, task_id=send_email_task, run_id=manual__2024-09-01T09:02:54.442821+00:00, execution_date=20240901T090254, start_date=20240901T090259, end_date=20240901T090300 [2024-09-01, 09:03:00 UTC] {taskinstance.py:340} ▶ Post task execution logs
-
미해결Airflow 마스터 클래스
dag_seoul_api dag은 실행이 되는데 파일이 저장이 안되네요
json으로 데이터로 잘불러왓고 dag도 성공적으로 마쳤다고 했는데 정작 files 폴더에는 저장이 안되어 있습니다.그래서 docker inspect로 mount 속성을 보니{ "Type": "bind", "Source": "/home/jspark9703/airflow/files", "Destination": "/opt/airflow/files", "Mode": "rw", "RW": true, "Propagation": "rprivate" }propagation이 rprivate으로 되있더군요 아마 이 속성때문에 그런거같은데... volumes 속성을 바꾸는 방법은 없을까요? 아님 다른 문제가 있는 것일까요?
-
미해결Airflow 마스터 클래스
EmailOperator 강습 중에 실행 오류 관련 문의 드립니다.
강사님*** !!!! Please make sure that all your Airflow components (e.g. schedulers, webservers, workers and triggerer) have the same 'secret_key' configured in 'webserver' section and time is synchronized on all your machines (for example with ntpd) See more at https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#secret-key *** Could not read served logs: 403 Client Error: FORBIDDEN for url: http://e1efbc97ae25:8793/log/dag_id=dags_email_operator/run_id=manual__2024-08-24T06:22:20.118495+00:00/task_id=send_email_task/attempt=1.log [2024-08-24, 06:22:25 UTC] {local_task_job_runner.py:123} ▶ Pre task execution logs [2024-08-24, 06:22:25 UTC] {warnings.py:112} WARNING - /home/***/.local/lib/python3.12/site-packages/***/utils/email.py:155: RemovedInAirflow3Warning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead. send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) [2024-08-24, 06:27:49 UTC] {taskinstance.py:3301} ERROR - Task failed with exception Traceback (most recent call last): File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 767, in executetask result = executecallable(context=context, **execute_callable_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 733, in executecallable return ExecutionCallableRunner( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/operator_helpers.py", line 252, in run return self.func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/baseoperator.py", line 406, in wrapper return func(self, args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/operators/email.py", line 79, in execute send_email( File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 80, in send_email return backend( ^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 155, in send_email_smtp send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/email.py", line 280, in send_mime_email smtp_conn.starttls() File "/usr/local/lib/python3.12/smtplib.py", line 779, in starttls self.sock = context.wrap_socket(self.sock, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/ssl.py", line 455, in wrap_socket return self.sslsocket_class._create( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/ssl.py", line 1042, in create self.dohandshake() File "/usr/local/lib/python3.12/ssl.py", line 1320, in do_handshake self._sslobj.do_handshake() TimeoutError: _ssl.c:983: The handshake operation timed out 위 문구와 함께 현재 smtp.gmail.com에 접속이 안되는데.. (worker에서도 접속이 안됨)혹시 다른 설정이 필요할게 있을까요?
-
미해결Airflow 마스터 클래스
Dag Start_date 에 현재 시간 넣을때 사이드 이펙트가 있을까요?
안녕하세요,인강 수강후 현업에서 Airflow 를 통해서 Dag 을 수행하고 있는데요,서비스 PM 등의 이유로 수시간(3~5시간) 정도 pause 를 진행하고 다시 unpause 를 하게 되는 경우가 있습니다.이럴때 unpasue 를 클릭하게 된다면 비록 Dag 에 catchup = false 로 지정해 놓더라도, 가장 최근에 수행 되었어야 할 Dag Run 은 수행되게 되는데요 Ex )schedule_interval = 10,20,30 1,2,3 * * * *Dag.catchup = Falsepause = 01:15unpause = 03:25수행되는 Dag run 의 data_interval_end = 03:20 그런데 여기서 3시 20 분 dag_run 을 수행시키지 않기 위해서 생각을 하다가, Dag 의 default_args 의 start_date 값을 datetime.now 로 주는것에 대해서 생각을 해봤는데요, 당장 간단하게 테스트를 했을때는 큰 문제가 없었는데, 혹시 해당 케이스가 문제가 되는 케이스가 있을까요? 그리고 start_date 를 now 로 하는것 말고도 다른 방안이 있다면 좋은 방안 부탁 드립니다감사합니다!
-
미해결Airflow 마스터 클래스
SSHOperator, BashOperator차이
강의에서는 BashOperator을 이용해서 DAG를 만들었는데,제 실무에서는 SSHOperator을 사용하더라구요.어떤 차이가 있는지 궁금합니다.
-
미해결Airflow 마스터 클래스
EmailOperator OSError
안녕하세요. EmailOperator 실습과정에서 오류가 발생해서 질문을 남깁니다!설정을 한 후 실행을 하니. OSError: [Errno 99] Cannot assign requested address 가 발생해서 도움이 필요합니다..!docker-compose.yaml 파일에 이렇게 설정을 하였고, 에러는 다음과 같습니다!
-
미해결Airflow 마스터 클래스
실무에서는 깃헙말고 뭘통해 업로드하나요?
실무는 어떻게하는지 궁금해요
-
미해결Airflow 마스터 클래스
8장 postgres 에 insert 하는 Dag 수행오류
안녕하세요. 8장에서 postgres 에 insert하는 dag를 실행하면 아래와 같은 오류로 대기하다가 실패로 끝납니다.구글에 찾아보면 'secret_key'를 모두 동일하게 적용해주라고 하는데, 어떻게 적용해야 되는지 찾지는 못해서 이렇게 문의하게 되었습니다. 아래 소스도 git에 올라와 있는 소스 그대로 올려서 수행했기 때문에 따로 올리지는 않았습니다.docker-compose.yamldags_python_with_postgres 위에 상태에서 최종 오류로 떨어지면 오류 메세지를 확인할 수 있었습니다 .ㅜ사실 원인은 위에 메세지가 아닌것 같아요.ERROR - Failed to execute job 1119 for task insrt_postgres (connection to server at "172" (0.0.0.172), port 5432 failed: Connection timed out Is the server running on that host and accepting TCP/IP connections? connection to server at "28.0.3" (28.0.0.3), port 5432 failed: Connection timed out Is the server running on that host and accepting TCP/IP connections?그리고, 저의 docker-compose.yaml 에서 postgres_custom, postgres의 설정부분입니다.그리고, airflow의 connection 연결할 때도 포트는 5432로 했습니다. 사실 질문답변을 검색해보면 저와 비슷한 오류가 1개 있어서 확인을 해봤는데요그 오류는 5429에서 5432로 변경해서 해결됐다고 나온 것 같고 저는 5432인데 해결이 안돼서제가 실수한게 있는지 확인부탁드립니다. ㅜ
-
미해결Airflow 마스터 클래스
EmailOperator 수업 중 RemovedInAirflow3Warning 오류
아래와 같이 dag 작성하고 smtp 설정을 해주었는데 오류가 발생했습니다.RemovedInAirflow3Warning: Fetching SMTP credentials from configuration variables will be deprecated in a future release. Please set credentials using a connection instead. send_mime_email(e_from=mail_from, e_to=recipients, mime_msg=msg, conn_id=conn_id, dryrun=dryrun) [2024-07-22, 06:53:07 UTC] {configuration.py:1053} WARNING - section/key [smtp/smtp_user] not found in config [2024-07-22, 06:53:07 UTC] {email.py:271} INFO - Email alerting: attempt 1오류내용은 위와같습니다!
-
미해결Airflow 마스터 클래스
Bash operator 만들기, log 확인하는법
섹션2 Bash operator 만들기 수업에서 bash_t1, bash_t2 task 모두 실행은 됐는데log탭이 보이질 않습니다.현재 Airflow (2.9.3 ver) 화면입니다. Auditlog 에서도 볼 수 없는데 어디서 볼수있나요?
-
미해결Airflow 마스터 클래스
.env 파일 변수를 PythonOperator에 적용할 경우 질문드립니다!
안녕하세요! 강사님서울시 공공데이터 API를 이용해 데이터를 추출하는 것을 보고저도 넥슨 오픈 API를 가지고 데이터를 출력해보려고 DAG과 PythonOperator를 만들어봤는데요, 보통 민감정보는 .env파일에다 적어놓고 가져와서 사용하기에 이렇게 짰는데,.env파일은 gitignore에 들어가니 dag실행시 읽어올 수가 없는데이런 경우는 어떻게 할까요...? 강의에서 보여주신 것처럼 서울시 공공 api에서 simplehttpoperator를 사용하고, airflow웹에서 variable 변수를 사용했듯이 이것도 이렇게 해야할까요..?!
-
해결됨Airflow 마스터 클래스
permission denied 오류 관련 문의드립니다!
안녕하세요! 강사님 질문이 하나 있는데요,제가 중간에 docker를 삭제했다가 다시 설치해서 하고 있는데다른 것들은 잘 되는데, 서울시 공공 데이터 API를 가지고 Custome Operator를 하는 과정에서 dags_seoul_api_corona.py 이 실행이 안되어서 문의드려요!처음에 directory가 없다는 오류가 떠서 생성하는 코드를 추가해봤는데, 추가한 이후에 dag 실행해도 실패해서 로그를 확인해보니 permission 거부 문제로 오류가 발생한 것을 확인하였습니다.docker-compose.yaml에서 volumes는 잘 설정되었는데, 혹시 제가 AIRFLOW_CORE_EXECUTOR를 LocalExecutor로 바꾼 게 문제가 되었을까요?databricks와 airflow를 연동하면서 dns를 설정하고, command를 좀 수정하였는데 이 부분이 문제였을까요...? ChatGPT에 물어보니 Webserver로 들어가서 Docker 컨테이너 내에서 이 디렉토리의 소유자를 airflow 사용자로 변경하면 된다고 하는데, [sudo] password for default: 부분에서 비밀번호 에러가 나네요...!저는 따로 default에 대한 비밀번호를 설정하지 않아서 해당 비밀번호를 잘 모르는 상태입니다..! docker를 재설치해야할 것 같은데... 하기 전에 강사님께 문의 드립니다!편하게 답변 주시면 감사하겠습니다!!
-
미해결Airflow 마스터 클래스
섹션3-2 외부 파이썬 함수 수행하기 에러코드 질문드립니다.
아래와 같은 에러가 발생했는데, common 파일을 못찾는 것 같습니다. 혹시 해결방법이 있을까요?
-
미해결Airflow 마스터 클래스
localhost:8080 에서 로그인이 안됩니다.
위 상황에서 인터넷창에 localhost:8080 후 진입하면 우선 선생님과 같은 로그인 화면이 아닌 다른 UI가 나옵니다. 그리고 초기 아이디/비번으로 설정된 airflow/airflow 로 시도해도 로그인이 안되고 있어서 해결방법을 알수있을까요?