아파치 플링크

IT 위키

아파치 플링크(Apache Flink)는 실시간 및 배치 데이터 스트리밍 처리를 위한 오픈소스 분산 처리 프레임워크이다.

1 개요[편집 | 원본 편집]

아파치 플링크는 대규모 데이터 스트림 처리를 위한 고성능 분산 처리 엔진이다. 스트리밍 데이터를 기본 처리 단위로 삼지만, 배치 처리 또한 스트리밍의 특수한 형태로 간주하여 일관된 API를 제공한다. 플링크는 정확히 한 번(exactly-once)의 상태 일관성과 이벤트 타임 처리 기능을 제공하여 신뢰성 높은 실시간 분석을 가능하게 한다.

2 특징[편집 | 원본 편집]

  • 실시간 스트리밍 및 배치 처리 지원
  • 상태 기반(Stateful) 스트리밍 처리
  • 정확히 한 번(exactly-once) 처리 보장
  • 이벤트 타임(Event Time) 및 윈도우(Window) 처리 기능
  • 다양한 소스 및 싱크 커넥터 지원(Kafka, HDFS, JDBC 등)
  • Flink SQL 및 Table API를 통한 고수준 질의 처리
  • 고가용성 및 장애 복구 기능 지원

3 구성 요소[편집 | 원본 편집]

  • JobManager: 작업의 전체 수명 주기를 관리하며, 작업 스케줄링 및 장애 복구를 담당한다.
  • TaskManager: 실제 사용자 작업을 실행하며, 각각의 연산(Task)을 병렬로 처리한다.
  • Dispatcher & ResourceManager: 클러스터 자원 관리를 담당하며, 다양한 배포 모드(Kubernetes, YARN 등)를 지원한다.

4 주요 사용 사례[편집 | 원본 편집]

  • 실시간 로그 분석 및 모니터링
  • 사기 탐지 시스템
  • 실시간 추천 시스템
  • 금융 거래 스트림 처리
  • IoT 센서 데이터 분석

5 역사[편집 | 원본 편집]

아파치 플링크는 독일 베를린의 TU Berlin에서 시작된 Stratosphere 프로젝트에서 유래되었으며, 2014년 아파치 인큐베이터 프로젝트로 채택되었다. 2015년에는 정식 아파치 탑레벨 프로젝트로 승격되었다.

6 관련 프로젝트[편집 | 원본 편집]

  • Apache Kafka: 메시지 브로커로 Flink와 자주 함께 사용된다.
  • Apache Beam: Flink를 실행 엔진으로 사용할 수 있는 범용 데이터 처리 모델을 제공한다.
  • Apache Spark: 유사한 기능을 제공하는 데이터 처리 프레임워크로 Flink와 비교된다.

7 같이 보기[편집 | 원본 편집]

8 참고 문헌[편집 | 원본 편집]

  • Kostas Tzoumas, Fabian Hueske. *Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing*. O'Reilly Media, 2019.
  • Fabian Hueske. *Stream Processing with Apache Flink*. O'Reilly Media, 2019.

9 각주[편집 | 원본 편집]