스파크 스트리밍

Untitled

스파크 스트리밍은 들어오는 정보를 작은 조각으로 쪼갠다. (Discretized Stream)

그리고 이 작은 조각을 RDD 조각으로 나눈다. 그리고 다른 일반 스파크 작업들처럼 이 RDD를 변형하고 처리한다. 따라서 스파크 스트리밍은 일반적으로 말하는 실시간 스트리밍은 아니다. 다만 마이크로 배치라고 부르는데, 엄밀히 말했을 땐 실시간이라고 보기 어렵지만, 거의 초 단위이기 때문에 실시간이라고 봐도 무방하다.

DStream (Discretized Stream)

DStream 객체는 각 배치 작업의 RDD를 만드는 일을 하며, 각 배치의 결과물을 만들어내기도 함.

즉, DStream이라는 단위로 Transformation이나 Action을 수행하여, 각 배치 조각을 수신하자마자, 이 배치 작업 조각을 DStream에게 실행하라고 명령하는 구조.

DStream에선 RDD에 하는 것처럼, Transform Mapping Action을 수행할 수 있고, 새로운 배치가 도착하면, 이 배치에 대해 DStream은 다시 똑같은 작업을 수행한다.

Stateful Data

→ 이건 잘 이해가 안 됨. 무슨 도움이 되는거지?

stateful data를 유지해서, 마이크로 배치를 즉시 처리할 수도 있고, 또는 배치 작업 시간 그 이상으로 오래 돌게 할 수도 있음… 뭔 소리야..

Windowing

Windowed Transformation은 짧은 배치 간격보다 더 긴 시간동안 결과물을 계산하도록 만든다.. 왜?

아. ㅋㅋㅋㅋㅋ

데이터를 계속 받고 있다가, 한 시간이 지나면, 그 데이터를 가지고 처리한다는 의미구나 ㅋㅋㅋ

근데 이렇게 쓰나 보통..? 이럴거면 그냥 배치로 돌리는게 훨씬 이득 아님? 데이터를 불러오는 작업이 없어서 더 빠른가..