전체 그래프
Flink

Architecture

data-engineeringflinkarchitecturejobmanagertaskmanager

상위: Flink

요약

Flink 아키텍처는 JobManager와 TaskManager로 구성된 분산 시스템입니다. JobManager는 작업 계획 수립과 조율을 담당하고, TaskManager는 실제 태스크 실행과 데이터 처리를 수행합니다. 이 구조를 통해 대규모 스트림 데이터를 효율적으로 처리할 수 있습니다.

Flink Architecture

flink-6.png

Flink Program

flink-7.png

  • 데이터 소스 정의 및 데이터 변환
  • 데이터 싱크 정의
  • Dataflow Graph 생성
  • 실행 계획 최적화
  • JobManager에 실행 계획 전달

JobManager

→ 조율하고 관리하는 중앙 컴포넌트

flink-8.png

  • 작업 계획 및 스케줄링
  • 리소스 관리
  • 장애 복구
  • 통신 및 조정
  • 웹 인터페이스 제공

TaskManager

flink-9.png

  • 태스크 실행
  • 리소스 할당 및 관리
  • 데이터 버퍼링 및 전송
  • 메모리 관리
  • 하트비트 및 상태 모니터링

Flink Workflow

flink-10.png

  • 각 슬롯에 메모리 할당 (1/n )

    • Task는 Task Slot에서 병렬 실행됨 → Slot 이 병렬 처리 단위
    • 한 Task Slot에서 여러 연산자(Source, Map 등) 실행 가능

    flink-11.png

  • 작업 슬롯 공유

    • 리소스를 완전 활용 가능
    • 하위 작업이 TaskManager에 공정하게 분배

    → 적은 자원으로 높은 효율

Task Slot 구조

메모리 할당

  • 각 TaskManager는 여러 Task Slot을 가짐
  • 각 Slot은 고정된 메모리 양을 할당받음
  • Slot 간 메모리 격리로 안정성 확보

병렬 처리

  • Task Slot은 병렬 처리의 기본 단위
  • 하나의 Slot에서 여러 연산자 체이닝 가능
  • 리소스 효율성 극대화

작업 분배

  • JobManager가 Task를 TaskManager에 분배
  • 로드 밸런싱을 통한 균등한 작업 분산
  • 장애 발생 시 다른 Slot으로 재배치

관련 개념