본문 바로가기
Big Data/Apache Spark

[Spark] Spark Streaming 이란?

by seaweed_one 2022. 12. 21.
728x90

Spark Streaming 은 실시간으로 들어오는 데이터 처리를 위한 모듈로써 빅데이터가 만족해야하는 세 가지 요소 (*3V)중 속도(Velocity)에 대한 니즈 충족을 위해 등장했습니다.

스파크 스트리밍을 통하여 실시간으로 데이터를 받아들여 처리하고 분석할 수 있으며 소스(Kafka, HDFS 등) 로부터 실시간 스트리밍 데이터를 받아 처리할 수 있습니다.

 

Spark Stream 아키텍쳐

spark는 일괄 처리를 지향하며 일괄 처리 기능을 실시간 데이터에 적용하기 위해 micro batch라 불리는 아키텍처를 사용합니다.

스파크 스트리밍은 특정 시간 간격 내에 유입된 데이터 블록을 끊어 RDD로 구성하고 아주 짧은 주기(ex.1초)로 배치처리를 진행합니다.

예로 워드카운트의 경우 들어오는 한 라인 라인이 마이크로 배치라고 이해하시면 될 것 같습니다.

해당 데이터를 각 노드에 분산하여 실시간 데이터를 처리하는데요.
여기서 실시간의 개념은 절대적인 것이 아닌 상대적인 개념으로 해석할 수 있습니다.

실시간의 범위는 사용자가 정의 가능합니다.

아래는 scala 로 작성한 streaminContext를 생성하고 실시간데이터 처리 주기를 설정하는 예제 코드입니다.

context = new StreamingContext(conf, Second(1)) //StreamingContext 생성(시간 설정)
context.start()

오늘 포스팅에서는 간략하게 스파크 스트리밍이 왜 등장하였는지 , 그리고 어떤 아키텍처를 가지고 있는지 알아보았는데요.

다음 포스팅에서는 스파크 스트리밍의 실행 방식과 종류에 대하여 자세히 알아보겠습니다.

 

 

728x90