익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
아파치 스파크 스트리밍
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
아파치 스파크 스트리밍(Apache Spark Streaming)은 [[아파치 스파크]]에서 제공하는 '''실시간 데이터 스트리밍 처리 기능'''이다. 대규모 실시간 데이터를 마이크로 배치(micro-batch) 단위로 처리하며, 고속 데이터 처리와 확장성을 동시에 제공한다. ==개념== *스트리밍 데이터를 '''작은 배치 단위로 분할'''하여 처리 *실시간 데이터 수집 → 변환 → 분석 → 저장의 전 과정 지원 *[[RDD]] 기반 처리 모델을 유지하되, 스트림 데이터에 맞춰 확장됨 ==구성 방식== 스파크 스트리밍은 다음과 같은 방식으로 구현할 수 있다: ===1. DStream API (Discretized Streams)=== *Spark 1.x~2.x에서 사용된 기존 스트리밍 방식 *'''DStream은 시간 단위로 나눠진 RDD들의 시퀀스'''로 구성됨 *고수준 연산 지원: map, reduceByKey, join 등 RDD 연산 유사 ===2. Structured Streaming=== *Spark 2.0 이후 도입된 고수준 API 기반의 새로운 스트리밍 모델 *[[DataFrame]], [[Dataset]] 기반으로 동작 *지속적 쿼리 방식 (continuous query model) *기존 [[Spark SQL]], [[Catalyst Optimizer]]와 통합되어 더 강력한 최적화 지원 *정확히 한번 처리(exactly-once semantics) 보장 ==외부 대체 기술== 아파치 스파크 스트리밍 외에도 실시간 처리를 위한 다음과 같은 대안들이 존재한다: *[[Apache Flink]] **완전 event-driven 방식 **true streaming model (배치 없음) **상태 기반 처리에 강점 *[[Apache Storm]] **스파우트와 볼트(Spout & Bolt) 구조 **낮은 레이턴시, 높은 처리율 지향 **실시간 분석에 적합 *[[Kafka Streams]] **[[Apache Kafka]] 위에서 동작하는 경량 스트리밍 라이브러리 **애플리케이션 내부에서 직접 실행 가능 (서버리스 구조) **마이크로서비스 아키텍처에 적합 ==예시 (DStream 기반)== <pre> from pyspark import SparkContext from pyspark.streaming import StreamingContext sc = SparkContext("local[2]", "NetworkWordCount") ssc = StreamingContext(sc, 1) lines = ssc.socketTextStream("localhost", 9999) words = lines.flatMap(lambda line: line.split(" ")) wordCounts = words.map(lambda w: (w, 1)).reduceByKey(lambda x, y: x + y) wordCounts.pprint() ssc.start() ssc.awaitTermination() </pre> ==비교 요약== {| class="wikitable" !시스템||처리 방식||언어/기반||처리 보장||특징 |- |Spark DStream||마이크로 배치||RDD||At least once||전통적인 구조, 단순 |- |Structured Streaming||마이크로 배치 또는 Continuous||DataFrame/Dataset||Exactly once||SQL과 통합, 권장 방식 |- |Flink||이벤트 기반||Stream API||Exactly once||진정한 스트리밍, 고도화된 상태 관리 |- |Storm||이벤트 기반||Bolt/Spout||At least once||낮은 지연 시간 |- |Kafka Streams||이벤트 기반||Kafka 기반||Exactly once||서버리스, 마이크로서비스에 적합 |} ==같이 보기== *[[아파치 스파크]] *[[Structured Streaming]] *[[Discretized Streams]] *[[Apache Kafka]] *[[Apache Flink]] *[[Apache Storm]] *[[Kafka Streams]] *[[RDD]] *[[데이터 스트리밍]] ==참고 문헌== *https://spark.apache.org/streaming/ *Zaharia et al. (2013). Discretized Streams: Fault-Tolerant Streaming Computation at Scale *Spark: The Definitive Guide (O'Reilly) *Apache Flink, Storm, Kafka Streams 공식 문서 [[분류:분산 컴퓨팅]] [[분류:아파치 스파크]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록