아파치 플링크
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.