전체 글
-
Airflow 3.0.1 remote logging 에러 해결Airflow 2025. 5. 25. 11:57
기존 2.10.3 버전을 사용중이던 Airflow를 3점대 버전으로 업그레이드 하는 과정에서 마주한 에러해결 과정을 공유해봅니다. ⚙️ 개발 환경airflow를 ECS에서 멀티클러스터로 구축했습니다.api-serverschedulerdag-processorworker(CeleryExecutor)redis Airflow UI에서 DAG 실행을 하면1. DAG run이 생성이 되고 metadata DB에 queued 상태로 저장됨2. dag-processor가 DAG를 파싱하고 DB내 DAG의 metadata 업데이트 함3. Scheduler가 DB를 감지하고 있다가 queued task 정보(DAG ID, task ID, execution date, etc.)를 redis에 메세지로 보냄4. 이 task..
-
Crontab 설치가 실패한다면? 마지막 줄에 줄바꿈 체크하기!개발Tip 2025. 1. 5. 15:43
-바쁜 현대인들을 위한 한 줄 summary-‘newline before EOF’ 오류 해결: 줄바꿈 문자 확인하기" crontab을 docker container에서 실행하기 위해 아래의 명령어를 Dockerfile에 추가하고 image 빌드하는 순간,RUN crontab -u airflow /opt/crontab.sh* /opt/crontab.sh 파일을 "airflow" user의 crontab(cron 잡)으로 설정하기 위한 명령어 다음과 같은 에러가 발생했습니다.😱> [4/9] RUN crontab -u airflow /opt/crontab.sh && chmod u+s /usr/sbin/cron: #6 0.344 new crontab file is missing newline before ..
-
python multiprocessing Pool을 활용한 데이터 병렬 처리MLOps 2024. 12. 8. 21:59
🍏 배경tfidf 추천 모델의 cosine 유사도 추출 후 추천 결과를 뽑기 위한 단계에서16만건의 유저 데이터를 처리하기 위한 분산처리 및 최적화가 필요했습니다. 🍎 해결방법python의 threading은 GIL(Global Interpreter Lock) 기능 때문에 병렬처리가 어려움으로 여러 작업을 효율적으로 병렬 처리할 수 있는 방식인 multiprocessing.Pool을 활용했습니다. https://ninano1109.tistory.com/294 multithread vs multiprocess (feat. Process, Pool 비교)멀티스레드와 멀티프로세스는 모두 데이터 병렬처리를 위한 python 모듈로 약간의 차이점과 용도별 차이가 있습니다. 스레드 vs 프로세스스레드하나의 ..
-
[Airflow] Airflow db 업그레이드 에러 해결(feat. 2.10.0 버전)Airflow 2024. 10. 29. 21:35
airflow db upgrade 명령어 실행 시,(airflow 2.7.0 대 버전 부터 airflow db upgrade -> airflow db migrate)[SQL: ALTER TABLE dag_run ADD COLUMN clear_number INTEGER DEFAULT '0' NOT NULL]ERROR: column "clear_number" of relation "dag_run" already exists위와 같은 에러가 발생함db 접속 후 해당 컬럼을 삭제해주고(저는 metadata db로 postgresql을 사용했습니다)> ALTER TABLE dag_run DROP COLUMN IF EXISTS clear_number;다시 airflow db upgrade 명령어를 실행하면,ALT..
-
Debezium - Oracle 접속 실패CDC Pipeline 2024. 9. 26. 21:12
데이터 변화 감지(CDC)를 위해 debezium과 oracle(aws rds) 연동 시 oracle DB 접속에 실패하는 에러가 발생했습니다. 1. oracle-connector error{"error_code":400,"message":"Connector configuration is invalid and contains the following 1 error(s):\nUnable to connect: Failed to resolve Oracle database version}먼저 oracle-connector로 REST API를 생성할 때 나타난 에러이고, 실행 중이던 kafka connect에 나타난 에러를 보면 다음과 같습니다. 2. kafka connect errorCaused by: java..
-
[Datahub] slack notification 연동하기(feat. docker-compose.yml env 적용)DDP 플랫폼/Datahub 2024. 7. 25. 20:17
Datahub 내 발생하는 변동 및 업데이트 사항에 대해 slack 알림을 받을 수 있는 설정을 해보려고 합니다.먼저 공식문서에 나와 있는 링크를 참고합니다.https://datahubproject.io/docs/actions/actions/slack/ Slack | DataHub| | |datahubproject.io 공식문서에서 확인할 수 있듯이 Adding or Removing a tag from an entity (dataset, dashboard etc.)Updating documentation at the entity or field (column) level.Adding or Removing ownership from an entity (dataset, dashboard, etc.)Creat..
-
multithread vs multiprocess (feat. Process, Pool 비교)IT용어정리 2024. 5. 8. 18:55
멀티스레드와 멀티프로세스는 모두 데이터 병렬처리를 위한 python 모듈로 약간의 차이점과 용도별 차이가 있습니다. 스레드 vs 프로세스스레드하나의 프로세스 안에 여러개의 스레드 존재4가지 메모리 영역중 스레드는 고유의 stack을 보유함 > stack은 독립적 함수 호출 가능 > 독립적 실행 흐름 추가 프로세스메모리 내 별도의 주소 공간에서 실행(독립적 구조) 동시성(concurrency) vs 병렬성(parallel) 동시성: 동시에 실행하는 것처럼 보이는 → 각 프로세스 작업을 작게 쪼개어 번갈아 처리 → context switching병렬성: 실제 물리적인 동시 실행 멀티스레드1. 여러개의 스레드가 하나의 프로세스 내에서 실행되며,2. 동일한 메모리 공간을 공유3. context switching..
-
[Airflow] Airflow dag 추가 에러 현상Airflow 2024. 2. 24. 14:04
Airflow에 새로운 DAG를 추가할 때 db 관련 에러가 발생하여 db 업그레이드 진행 시 에러발생> airflow db upgraderaise sa_exc.PendingRollbackError(sqlalchemy.exc.PendingRollbackError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (psycopg2.errors.NotNullViolation) null value in column "m..