관리 메뉴

Hee'World

Spark Streaming (PySpark) 본문

BigData/Spark

Spark Streaming (PySpark)

Jonghee Jeon 2020. 4. 21. 00:05

 -  Spark Streaming은 실시간 데이터 스트림을 확장 가능하고 많은 처리량의 내결함성 스트림 처리를 지원하는 Spark의 핵심 API

 - 카프카, Flume, S3, HDFS, TCP 소켓과 같은 다양한 소스로부터 수집 할 수 있음

 - 처리된 데이터를 파일 시스템, 데이터베이스 및 라이브 대시 보드로 

 - 실제로 Spark의 기계 학습 및 그래프 처리 알고리즘을 데이터 스트림에 적용 할 수 있음

https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html
https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html

 

Structured Streaming

 - 실제 Spark 2.x로 와서는 Structuured Streaming을 권장하고 있으며, 스트림 데이터를 Spark DataFrame의 하나의 행으로 계속 추가해서 처리한다고 보면 된다.

https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html

 - 이벤트 시간이라는 데이터 기록된 시간 필드를 기준으로 처리

 - 워터마크라는 스트림 처리 시간보다 늦게 유입된 데이터에 대해 어떻게 처리 할지에 대한 기능 제공

 - 데이터의 출력 시점을 정하는 트리거 기능 제공

https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html

 

 텀블링 윈도우

  - 시간 윈도우에 대한 키 기준 집계 연산을 수행 

https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html

슬라이딩 윈도우

 - 지나간 시간에 대한 데이터를 유지하며 연속적인 값으로 처리.

https://databricks.com/blog/2017/05/08/event-time-aggregation-watermarking-apache-sparks-structured-streaming.html

 - 스트림 데이터를 처리함에 있어 기존 Spark DataFrame의 기능을 그대로 사용 가능하다.

 - netcat Spark Streaming Exam01

[user@spark ~]$ su - 
[root@spark ~]# yum install nc

[root@spark ~]# su - carbig
[user@spark ~]$ nc -lk 9999
spark
streaming
bigdata
spark
hadoop

[user@spark ~]$ spark-submit /opt/spark/current/examples/src/main/python/sql/streaming/structured_network_wordcount.py localhost 9999

'BigData > Spark' 카테고리의 다른 글

Spark ML 02 (Pyspark)  (0) 2020.04.26
Spark ML (Pyspark)  (0) 2020.04.25
Spark SQL (PySpark)  (0) 2020.04.15
Spark DataFrame 03 (Pyspark)  (0) 2020.04.11
Spark DataFrame 02 (Pyspark)  (0) 2020.04.11
Comments