30분이면 끝나는 DAG가 9시간반 동안 RUNNING 상태로 멈춰 있었다. EMR은 이미 끝났는데, Airflow는 끝나지 않았다. 왤까? 이 글은 GKE Rolling Upgrade 도중 발생한 Airflow 좀비 태스크 장애 분석과 해결 전략을 정리한 트러블슈팅 기록이다. 결론부터 말하면,GKE 롤링 업그레이드로 노드가 교체될 때 NFS 서버와 Airflow 스케줄러가 동시에 재시작되면서, NFS가 준비되기 전에 스케줄러가 마운트를 시도해 8시간 다운됐고, 그 사이 Sensor Pod는 재스케줄링을 못 받은 것인 원인이었다. 1.장애 상황 요약증상: Task가 9시간째 RUNNING (원래 30분이면 완료되는작업)Airflow Scheduler 2개(브랜치,메인)가 동시에 8시간 이상 Ini..
기계 학습을 수행하다 보면 최적의 파라미터를 탐색하며 모델의 성능을 극대화하는 과정이 매우 중요하다. 하지만 실험 결과가 개인 PC나 노트북에 흩어지게 되면 어떤 설정이 가장 효과적이었는지 추적하기 어렵고, 팀원과의 협업이나 모델의 재현성 또한 크게 떨어진다. 이러한 문제를 해결하기 위해 활용하는 도구가 바로 MLflow이다. 이번 블로그에서는 MLflow를 활용하여 하이퍼파라미터별 학습 결과를 체계적으로 기록하고, EC2에 MLflow Tracking Server를 구축하여 실험 로그를 중앙에서 관리하는 구조를 구성해본다. 또한 학습된 모델 아티팩트는 S3에 저장하고, 실제 모델 학습은 AWS SageMaker AI 환경에서 수행함으로써 학습과 기록, 저장을 분리한 실전 MLOps 구조를 구현함에 목..
1. 아키텍처Processing Text -> Splliting Text -> Nomalizing Words -> Removing Stop Words -> Word Count Analyzing Word Count for InsightWord count analysis helps identify frequently occurring words or phrases.Understanding popular topics and subjects being discussed.Example: High frequencies of "technology", "innovation", and "startups" indicate a focus on the tech industry.Word Count Trends for Bus..
실시간 스트리밍 에서는 Spark Sturcted Stream 보다 빠르다고 하여,언젠가는 배운다 배운다 마음먹은 나날들.. 2026새해 다짐과와 함께 바로 시작해본다. 어디서 부터 시작할지 몰라, 일단 설치부터 진행한다. 1. java, javac 설치 (생략)java -version#openjdk version "11.0.26" 2025-01-21#OpenJDK Runtime Environment Homebrew (build 11.0.26+0)#OpenJDK 64-Bit Server VM Homebrew (build 11.0.26+0, mixed mode)javac --version#javac 11.0.26 2. flink 설치#https://flink.apache.org/downloads/#들어..
Apache Flink의 핵심역량은끊임없이 생성되는 경계없는 데이터 스트림을 처리할 수 있는 능력에 있다.전통적인 데이터 처리 시스템은 배치로 처리할 수 있는 유한하고 정적인 데이터인 경계된 세트를 위해 설계되었기 때문에 이러한 데이터에 어려움을 겪는 경우가 많다. 하지만 Flink는 제한된 데이터와 제한되지 않은 데이터를 모두 스트림으로 취급하여 데이터 처리에 대한 보다 유연하고 효율적인 접근방식을 가능하게 한다. 이러한 스트리밍 아키텍처는 특히 적시에 데이터를 처리하고, 의사결정을 내리는 것이 중요한 시나리오에서 돋보인다. Flink아키텍처는 고성능 데이터 변환 및 집계를 가능하게 하여 복잡한 데이터 처리 작업도 쉽게 실행할 수 있도록하며,복잡하고 상태가 좋은 연산을 처리하면서 높은 처리량을 유지할..
Spark의 핵심 데이터 모델 정리 1. RDD (Resilient Distributed Dataset) RDD는 Spark의 가장 기본적인 분산 데이터 모델로, MapReduce보다 더 유연하고 빠르게 데이터를 처리할 수 있게 해준다. 핵심 특징Resilient (탄력성): 오류가 발생해도 데이터를 복구할 수 있는 fault-tolerant 구조Distributed (분산): 여러 노드에 데이터를 나눠 저장하고 처리함Dataset (불변성): 한 번 생성되면 변경되지 않으며, 항상 새로운 RDD를 반환 (함수형 방식) MapReduce와 비교유사한 분산 처리 모델이지만, 메모리 중심의 연산으로 훨씬 빠름MapReduce가 디스크 기반이라면, RDD는 메모리를 적극 활용MapReduce는 "무엇을 할..
오늘은 대규모 병렬 분산처리 플랫폼인 Spark의 대표 예제인, Word count를 사용하며, Spark가 얼마나 좋은지 체감을 하고자, 간단한 테스트를 해보려한다. (TB단위 까지는 아니어도) 한 10Gb 텍스트 파일 정도로, 간단하게 map, reduce , count를 통해 단어 카운트 하는 로직이정말로 Spark 를 쓰면 빠르긴한지. 또 빠른 이유는 무엇인지 까지 알아보자. 실험은 아래 3가지로 진행하며, 로직이 몇초 걸렸는지로 순위를 매긴다. 1. 일반 파이썬으로 돌릴때,2. Spark RDD 방식,3. Spark Dataframe 방식 데이터는 7GB정도 txt 파일 (수억글자 될듯) 결과부터 보자.. 1. 일반 파이썬으로 돌릴때 -> 180초 2. Spark RDD 방식 -> 약6..
1.Protobuf란?구글 프로토콜 버퍼(Protobuf)는 구글이 개발한 언어 및 플랫폼에 독립적인 구조화된 데이터 직렬화(Serialization) 시스템으로, JSON, XML과 달리 바이너리 기반이라 빠르고 용량이 작아 네트워크 통신 및 데이터 저장에 최적화되어 있으며 C++, Java, Python, Go 지원하는 포맷의 형태 말이어렵다.-> 카프카쓸때 기본 텍스트보다, 바이너리 포맷으로 보내면 작게 그리고 훨씬 빠르게 전송이 가능한 포맷이다. 2.사용배경여러개의 파편화된 테이블에서 한곳에서 보기 위하여 기존 백엔드 테이블 구조는 변경하지않고,공통컬럼으로 묶어 카프카로 다시 db에 인서트한다면, 최초 한번의 세팅으로, 신규 테이블 하나로 묶을 수 있다. 지표를 분석하거나, 파편화된 피쳐를 학..
광고업쪽 개발일을 하다 보면 결국 한 번쯤은 부딪히는 게 있다."Event Driven..." 제휴사에서 우리 서버로 S2S(Server to Server) 실시간 이벤트를 쏴 주고 싶은데,아키텍쳐를 짜야한다. 웹서버 만드는건 요새 신입도 만들긴한다.. 잘 받게만 만들면될까? 아키텍처 구조는? 비용은?초당 수천 TPS까지 올라가면?계속 인슨턴스를 바꾸면서, cpu/memory를 바꿔야하나.. DevOps를 모르는 백엔드 엔지니어라면,이 질문에 참 난감하다. 대용량 트래픽을 받기 위한 방법들은 다양하다. 1.메시지 분산 처리 카프카(혹은 sqs)2.웹서버 띄워 k8s 배포 prometheus메트릭 수집 + vpa확장 (혹은 karpenter)3.또 뭐있을까.. 프로비저닝된 모노레포식 웹서버.. 이 글에..
너무나 많은 크롤링봇이 S2S 연동한 웹서버로 제집 안방 출입하듯 들어와서 정작 들어와야 할 post들이 초당 수천 혹은 (버서트시) 수만 tps가 몰리는경우 발생한 이슈다. (평시/행사시 1000~2000tps / 3000tps 로 꽤나 재미난 프로젝트를 진행중..) 화이트리스팅 통해 외부 ip를 차단하는것이 좋을지, user-agent로 고민하던 찰나, AWS에 서빙을 하고있으니, WAF를 ALB에 걸어놓으면 손쉽게 해결 가능하단거 알게 되었다. (왜이제알았노..) 우선 AWS > Web ACLs > [ {waf명}] > Rules 1.Rules 생성 2. Associated AWS resources alb 타게팅지정 운영환경에 적용도 해보니, 잘 막는다. 약 11만건의 이벤트중 고작 6건(..
- Total
- Today
- Yesterday
- 42서울
- 위즈윅에디터
- asyncio.gather
- k8s
- Tableau
- planetscale배포
- nextj이미지저장
- 우테코
- CloudFlare
- 부트캠프
- datalabeling
- Python
- 메타코드
- next.js
- helm
- airflow
- kubectl
- Tailwind
- create_task
- supervised
- 데이터엔지니어
- docker
- semi-supervised
- 윈도우pscale설치
- 타입스크립트
- 함수형프로그래밍
- pscale
- 대수자료구조
- un-supervised
- asyncio
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |