1. 程式人生 > >sparkStreaming介紹與執行方式

sparkStreaming介紹與執行方式

Spark Streaming is an extension of the core Spark API that enables scalable, 
high-throughput, 
fault-tolerant 
stream processing of live data streams.


Spark Streaming個人的定義:
將不同的資料來源的資料經過Spark Streaming處理之後將結果輸出到外部檔案系統


特點
低延時
能從錯誤中高效的恢復:fault-tolerant 
能夠執行在成百上千的節點
能夠將批處理、機器學習、圖計算等子框架和Spark Streaming綜合起來使用


Spark Streaming是否需要獨立安裝?


One stack to rule them all : 一棧式




GitHub
https://github.com/apache/spark


spark-submit的使用


使用spark-submit來提交我們的spark應用程式執行的指令碼(生產)
./spark-submit --master local[2] \
--class org.apache.spark.examples.streaming.NetworkWordCount \
--name NetworkWordCount \
/home/hadoop/app/spark-2.2.0-bin-2.6.0-cdh5.7.0/examples/jars/spark-examples_2.11-2.2.0.jar hadoop000 9999


如何使用spark-shell來提交(測試)
./spark-shell --master local[2]


import org.apache.spark.streaming.{Seconds, StreamingContext}


val ssc = new StreamingContext(sc, Seconds(1))
val lines = ssc.socketTextStream("hadoop000", 9999)
val words = lines.flatMap(_.split(" "))
val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _)
wordCounts.print()
ssc.start()
ssc.awaitTermination()






工作原理:粗粒度
Spark Streaming接收到實時資料流,把資料按照指定的時間段切成一片片小的資料塊,
然後把小的資料塊傳給Spark Engine處理。