• 뉴스배너

Service

Spark Streaming 데이터 정리 메커니즘
(I) DStream과 RDD
아시다시피 Spark Streaming의 연산은 Spark Core를 기반으로 하며, Spark Core의 핵심은 RDD입니다. 따라서 Spark Streaming 역시 RDD와 관련이 있을 수밖에 없습니다. 하지만 Spark Streaming은 사용자가 RDD를 직접 사용할 수 있도록 하는 것이 아니라, DStream 개념 집합을 추상화합니다. DStream과 RDD는 포괄적인 관계이며, Java의 데코레이션 패턴으로 이해할 수 있습니다. 즉, DStream은 RDD를 강화한 것이지만 동작 방식은 RDD와 유사합니다.
DStream과 RDD에는 모두 여러 가지 조건이 있습니다.
(1) map, reduceByKey 등과 같은 유사한 변환 작업이 있지만 Window, mapWithStated 등과 같은 고유한 작업도 있습니다.
(2) 모두 foreachRDD, count 등의 Action 동작을 가지고 있습니다.
프로그래밍 모델은 일관성이 있습니다.
(B) Spark Streaming에서 DStream 소개
DStream에는 여러 클래스가 포함되어 있습니다.
(1) InputDStream, DirectKafkaInputStream 등과 같은 데이터 소스 클래스.
(2) 변환 클래스, 일반적으로 MappedDStream, ShuffledDStream
(3) 일반적으로 ForEachDStream과 같은 출력 클래스
위에서 언급했듯이, 시작(입력)부터 끝(출력)까지의 데이터는 DStream 시스템에 의해 처리됩니다. 즉, 사용자는 일반적으로 RDD를 직접 생성하고 조작할 수 없으며, 이는 DStream이 RDD의 수명 주기를 책임질 기회와 의무가 있음을 의미합니다.
즉, Spark Streaming에는자동 정리기능.
(iii) Spark Streaming에서의 RDD 생성 프로세스
Spark Streaming에서 RDD의 수명 흐름은 다음과 같습니다.
(1) InputDStream에서 수신된 데이터는 DirectKafkaInputStream과 같이 RDD로 변환되어 KafkaRDD를 생성합니다.
(2) 그 후 MappedDStream 등을 통해 다른 데이터로 변환하는데 이때는 RDD에 해당하는 map 메서드를 직접 호출하여 변환한다.
(3) 출력 클래스 연산에서는 RDD가 노출된 경우에만 사용자가 해당 저장, 기타 계산, 기타 연산을 수행하도록 할 수 있습니다.