주요 컨텐츠로 이동

Spark Streaming

Databricks 무료로 시작하기

Apache Spark Streaming은 Apache Spark 스트리밍 엔진의 이전 세대입니다. Spark Streaming은 더 이상 업데이트되지 않는 레거시 프로젝트입니다. Apache Spark에는 Structured Streaming이라는 새롭고 간편한 스트리밍 엔진이 있습니다. 애플리케이션과 파이프라인 스트리밍을 위해서는 Spark Structured Streaming을 사용해야 합니다. Structured Streaming을 참조하세요.

Spark Streaming이란 무엇입니까?

Apache Spark Streaming은 확장할 수 있는 내결함성(fault-tolerant) 스트리밍 처리 시스템으로, 배치 및 스트리밍 워크로드를 둘 다 기본적으로 지원합니다. Spark Streaming은 코어 Spark API의 확장 프로그램으로, 데이터 엔지니어와 데이터 사이언티스트가 Kafka, Flume 및 Amazon Kinesis 등을 비롯한(여기에만 국한되는 것은 아님) 여러 소스에서 가져온 실시간 데이터를 처리할 수 있게 해줍니다. 이렇게 처리한 데이터를 파일 시스템, 데이터베이스나 사용 중인 대시보드로 보낼 수 있습니다. 여기에 속한 주요 추상화를 Discretized Stream, 줄여서 DStream이라고 하는데, 이것은 데이터 스트림 하나를 여러 개의 작은 배치로 나눈 것을 말합니다. DStream은 Spark의 코어 데이터 추상화인 RDD 기반입니다. 이것을 이용하면 Spark Streaming이 MLlib나 Spark SQL과 같은 여타 모든 Spark 구성 요소와 원활하게 통합됩니다. Spark Streaming이 다른 여러 시스템과 다른 점은, 스트리밍만을 위해 고안된 처리 엔진이 있거나 이와 비슷한 배치 및 스트리밍 API가 있어도 여러 가지 엔진으로 내부에서 컴파일링한다는 데 있습니다. Spark의 배치, 스트리밍용 단일 실행 엔진과 통합형 프로그래밍 모델은 기존의 다른 스트리밍 시스템과 비교해 몇 가지 독보적인 장점이 있습니다.

Spark Streaming의 4대 주요 측면

  • 오류, 지연 작업 발생 시 신속한 복구
  • 로드 밸런싱과 리소스 사용률 개선
  • 정적 Dataset와 인터랙티브 쿼리를 사용해 스트리밍 데이터 결합
  • 고급 처리 라이브러리(SQL, 머신 러닝, 그래프 처리)와 네이티브 방식으로 통합

Apache Spark

이렇게 이질적인 데이터 처리 기능을 통합하는 기능이 Spark Streaming이 급속히 도입된 주된 이유입니다. 이것을 사용하면 개발자가 처리 요구사항 전체에 모두 부합하는 단 하나의 프레임워크만 간편하게 사용할 수 있습니다.

추가 자료

용어집으로 돌아가기