DolphinScheduler

김도비·2025년 8월 29일

Data Engineering

목록 보기
12/13

이것저것 요즘 데이터 엔지니어 관련 오픈소스들을 많이 찾아본다. 기존에 Quartz 혹은 Elastic Job은 봤는데 눈에 들어와서
정리를 남겨본다.

데이터/업무 파이프라인을 DAG 기반으로 스케줄링·실행·모니터링하는 오픈소스 플랫폼

DolphinScheduler Architecture

  • 분산 구조
    • Multi-Master / Multi-Worker 구조
    • Master: DAG 스케줄링, 의존성 체크, 작업 분배
    • Worker: 실제 태스크 실행
  • 구성 요소
    • API Server: REST API 제공
    • Alert Server: 알림 전송 (메일, Slack 등)
    • Web UI: DAG 정의, 모니터링
    • Registry(ZooKeeper): 클러스터 메타데이터, 세션 관리
  • 태스크 플러그인
    • Shell, Python, Spark, Flink, Hive, Sqoop, HTTP, DataX 등 다양한 태스크 지원
  • Sub-Process
    • 한 노드를 독립된 DAG(자식 워크플로우)로 캡슐화 가능 → 모듈화 및 재사용
  • 운영 시나리오
    • Master/Worker 장애 시 자동 Failover
    • Kubernetes 기반 클라우드 네이티브 배포 지원

장점

  1. 강력한 DAG 시각화
    • UI에서 의존성, 재시도, 타임아웃, 알림 등 직관적으로 설정 가능
  2. 확장성 & 고가용성
    • Master/Worker 수평 확장, 장애 시 Failover로 안정성 확보
  3. 유연한 통합
    • 다양한 Task Plugin + HTTP 태스크로 외부 시스템/데몬과 손쉬운 연동
  4. 모듈화 & 재사용
    • Sub-Process DAG 기능으로 대규모 파이프라인을 계층화 가능
  5. 클라우드/온프레미스 운영 모두 지원
    • Kubernetes 기반 스케일 인/아웃 운영 사례 풍부
  6. 오픈소스 생태계
    • Apache 프로젝트, 활발한 커뮤니티와 문서화

단점

  1. 운영 복잡도
    • Master/Worker/API/Alert/ZooKeeper/DB 등 다수 컴포넌트 관리 필요
  2. ZooKeeper 의존성
    • ZK 튜닝/장애 대응 역량이 품질에 직접 영향
  3. 버전별 호환성
    • 일부 플러그인/기능이 버전별로 차이가 있어 업그레이드 주의 필요
  4. 커스터마이징 난이도
    • Worker 내부 TaskPlugin 확장은 난이도가 높아 보통 HTTP 태스크 패턴으로 우회
profile
모든 걸 기록하자

0개의 댓글