string(27) "/blog/?uid=166&mod=document"

HOME

ABOUT US

Blog

Blog

Blog

Stream Processing

2021.03.25

앞서 하둡, 하이브, 카프카 등 Stream Process를 이용한 다양한 플랫폼에 대해 살펴보았다. Stream Processing을 정의하자면 데이터들이 지속적으로 유입되고 나가는 과정에서 데이터에 대한 분석, 질의를 실시간으로 수행하는 것을 의미한다. 사용자의 웹서비스 상의 행동을 기록하고 결제시스템, 날씨 정보와 같이 실시간으로 들어온 데이터를 분석하고 즉각적으로 응답하기 위해 주로 사용된다. 기존 배치처리 방식을 대신하여 데이터의 용량에 따른 유연한 확장과 실시간 처리가 가능한 스트림 프로세싱을 도입하는 플랫폼이 늘어나고 있다.

 

 

20210325144329_4k5bsj3.png

Stream Processing : 매우 짧은 시간에 실시간으로 들어온 데이터를 처리하거나 분석을 하는 방식.

 

즉각적인 반응을 요구하는 서비스 또는 최소한의 오버헤드로 실시간 응답이 필요로 하는 서비스에 사용

Batch: 일괄적으로 데이터를 모아 쌓아 놓은 데이터를 일정 기간이 지나 전송하는 방식

Micro Batching : 유입되는 Records를 짧은 주기의(수 초 이내) Batch 처리가 가능한 단위로 묶어 스트리밍 시스템으로 보내는 방식

 

배치처리와 스트림 프로세싱의 차이점을 정리하자면 아래와 같이 설명할 수 있다.

20210325144417_t3nmn8n.png

스트림 프로세싱을 활용하여 소프트웨어 어플리케이션이나 솔루션의 개발을 하기 위해 제공되는 프레임워크는 여러가지가 있으며 아크데이타의 Ark for Bigdata는 Kafka 뿐만 아니라 다양한 Stream Process 플랫폼에서 지원하기 위해 이를 분석 중에 있다.

대표적인 프레임 워크를 살펴보자면 다음 네가지가 있다.

 

1. Apache Spark Streaming

스파크 스트리밍은 짧은 주기로 데이터를 모아 처리하는 방식인 micro batch 성격을 지닌 상태로 Streaming Process를 지원한다. 또한 RDD(Resilient Distributed Dataset) 기반으로 분산된 작업자에 작업을 할당하고 임계영역(작업자가 작업을 건드릴 수 없는 영역)을 지정하여 데이터의 무결성과 원자성을 보장한다. 그렇기 때문에 배치 작업 사이에 새로 상성되는 데이터의 크기를 최소화 하여 Streaming Process처럼 빠른 응답을 가질 수 있다. 하지만 언어 지원이 제한되어있으며 설정 및 구현이 복잡하여 한정적으로 쓰이고 있다. 또한 Micro Batch Processing 방식을 사용하기 때문에 진정한 스트리밍 서비스라고 볼 수는 없다.

 

20210325144448_9t1qayb.png


 

2. Apache Storm

Apache Storm 은 시장 정보 기업인 백타이프가 처음 시작한 프로젝트이다. Apache Storm 은 무한대의 데이터 스트림을 Hadoop Batch Processing 처럼 실시간으로 쉽고 빠르게 처리함과 동시에 수동으로 중지하기 전까지 영구적으로 실행할 수 있는 특징이 있다. 하지만 메시지 순서를 보장하지 않아 데이터 안정성 및 무결성을 해칠 수 있으며 구현하기 복잡하다는 단점이 있다.

 

 

20210325144512_chdniu9.png


3. Apache Samza


 

20210325144532_bk484ze.png

4. Apache Flink

Apache Flink 는 Streaming Process 플랫폼으로 Stateful Streaming Process 처리 방식이라 상태 저장소가 필요시된다. Batch 가 아닌 Stream Process 방식으로 데이터를 처리하기 때문에 낮은 응답성 및 높은 정확성과 처리량으로 최근 스트림 처리 분야에서 각광받고 있습니다. Stream Process처리 뿐만 아니라 Spark 와 마찬가지로 Batch 처리를 위한 API 역시 지원하고 있다. 또 별도의 최적화 및 조정 작업이 필요로 하지 않아 고가용성을 보장하는 장점을 가지고 있다

 

 

 

 

20210325144611_8xhs8k1.png