celina의 이것저것
[Apache Flink] 본문
Stream Processing?
스트림 프로세싱은 금융 거래나 시장 및 통화 상태 모니터링, 보안 탐지나 시스템 실시간 분석과 같은 스트리밍 분석(Streaming Analytics) 또는 실시간 분석(Realtime Analytics)에 사용되는 기술
일정량 또는 일정기간 동안 데이터를 모아서 한꺼번에 처리하는 일괄처리(Batch Processing)와 비교하여 연속되는 실시간 데이터를 처리하기 때문에 빠르고 효율적인 데이터 활용이 가능
Apache Flink란?
제한되지 않은(스트림) 데이터 세트와 제한된(배치) 데이터 세트에 대한 상태 저장 처리를 위한 오픈 소스 분산 엔진
- 스트림 처리 애플리케이션은 가동 중단 시간을 최소화하면서 지속적으로 실행되고, 수집되는 데이터를 처리하도록 설계
- 대기 시간이 짧은 처리, 인 메모리 계산 수행, 고가용성, 단일 장애 지점 제거 및 수평 확장을 위해 설계됨
- 스트리밍 우선으로 개발됨, 스트림 및 배치 처리를 위한 통합 프로그래밍 인터페이스를 제공함
플링크를 사용하고 있는 기업
우버(Uber Technologies Inc.)는 전 세계에서 수집되는 데이터를 분석할 플랫폼으로 구축한 AthenaX에 플링크를 사용하였습니다. 세계 최대 전자상거래 업체인 알리바바(Alibaba Group Holding Limited)는 플링크를 기반으로 한 블링크(Blink)를 개발하여 실시간 검색순위 최적화를 수행하고 있습니다. 또한 AWS의 스트림 프로세싱을 위한 완전 관리형 클라우드 서비스인 키네시스 데이터 애널리틱스(Kinesis Data Analytics)도 플링크를 사용하고 있습니다.
Flink와 Spark의 차이
스트림 프로세싱 구현 방식
네이티브 스트림 | • 지연시간 최소 • 이벤트 처리 보장 방식에 따라 내결함성 유지가 어려움 |
• 플링크(Flink) • 카프카 스트림즈(Kafka Streams) |
소규모 일괄처리 | • 네이티브 스트림 대비 지연시간 발생 | • 스파크(Spark) |
다른 프레임워크와 차별화 되는 주요 특징
- 네이티브 스트림(Native Stream): 플링크는 일괄처리도 지원하지만 스트림 프로세싱을 주목적으로 사용합니다. 경량의 분산 스냅샷을 구현하여 오버헤드는 낮으면서도 Exactly-once의 이벤트 처리를 보장할 수 있습니다.
- 인메모리(In-Memory): 자바 애플리케이션으로 JVM(Java Virtual Machine)에서 실행되지만 JVM GC(Garbage Collector)에 전적으로 의존하지 않습니다. 대신 커스텀 메모리 매니저를 구현하여 안정적인 메모리 사용량을 유지하면서 성능 향상을 꾀하고 있습니다.
- 낮은 지연과 높은 처리량(Throughput): 경쟁 제품에 비하여 지연과 처리량에서 우수한 성능을 보입니다. 플링크는 데이터를 처리하는 과정에서 변경된 부분만 재처리하도록 설정하여 처리 속도를 더 높일 수도 있습니다.
- 손쉬운 설정과 사용 그리고 강력한 부가 기능: 스파크는 파라미터 설정이 복잡하지만 플링크는 별다른 설정 없이 사용할 수 있습니다. 입력되는 이벤트 스트림에 개별로 접근할 수 있고, 강력한 윈도우 연산자를 사용하여 분석을 수행할 수 있습니다. [그림 3]과 같이 고급 분석용 API부터 상세한 제어가 가능해지는 상태 저장 이벤트 기반 애플리케이션 수준까지 계층에 따른 API를 제공합니다.
참고
https://www.samsungsds.com/kr/insights/flink.html
글로벌 기업이 더 주목하는 스트림 프로세싱 프레임워크 - 플링크[Flink] 이해하기 | 인사이트리포
빅데이터 시대가 도래하면서 데이터 분석과 보안에 대한 관심이 커지고 있습니다. 특히 수많은 데이터의 홍수 속에서 실시간으로 분석 결과를 확인하기 위한 스트림 프로세싱(Stream Processing) 기
www.samsungsds.com
[정보관리 기술사] 아파치 플링크(Apache Flink)란 무엇인가?
아파치 플링크(Apache Flink)의 개념 플링크(Flink)는 독일어로 민첩함을 뜻하는 단어로 베를린 TU대학교에서 시작된 아파치 프로젝트의 하나로, 분산 처리를 위한 오픈 소스 데이터 스트림 처리 및
sketchit.tistory.com
https://aws.amazon.com/ko/what-is/apache-flink/
Apache Flink란? - Apache Flink 설명 - AWS
Apache Flink는 제한되지 않은(스트림) 데이터 세트와 제한된(배치) 데이터 세트에 대한 상태 저장 처리를 위한 오픈 소스 분산 엔진입니다. 스트림 처리 애플리케이션은 가동 중단 시간을 최소화하
aws.amazon.com
https://azderica.github.io/00-flink/
[Flink] Flink이란? - Azderica
Flink 업무에 대해 진행하고, 오늘 있었던 쿠팡 레퍼런스에서 Apache Flink로 실시간 스트리밍에 대한 이야기가 있었는데, 이에 대해 Apache Flink가 정확하게 어떤 개념인지를 알지 못해서 이를 알아봐
azderica.github.io
스트림 프로세싱의 긴 여정을 위한 이정표 (w. Apache Flink)
이 글은 스트림 프로세싱이란 개념이 생소하고 Flink를 현업에서 도입하고자 하는 분들이 어디서 부터 시작해야 하는지, 앞으로 무엇을 공부해야하는 지 알 수 있는 이정표 역할을 할 수 있길 기
medium.com