분류 전체보기
-
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..
-
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..
-
[Linux] ec2 방화벽 port 설정 명령어(feat. firewall-cmd)개발Tip 2024. 2. 1. 22:27
방화벽 등록 리스트 확인 $ sudo firewall-cmd --list--all 방화벽 상태 check $ sudo firewall-cmd --state 방화벽 port 등록 $ sudo firewall-cmd --permanent --add-port={port number}/tcp => 바로 반영 안됨 방화벽 리로드 $ sudo firewall-cmd --reload 당신이 어떤 것을 할머니에게 설명해주지 못한다면, 그것은 진정으로 이해한 것이 아니다. - A.Einstein