Spark-Streaming的學習使用
1. SparkStreaming
Spark Streaming可以輕鬆構建可擴充套件的容錯流應用程式。
- 便於使用
把之前學過的處理離線資料的運算元直接拿來使用 - 容錯
sparkStreaming可以保證資料被消費一次
保證不丟失,不重複消費資料。 - 整合
flume/kafka/tcp sockets
2. SparkStreaming計算架構
3. Dstream
編寫sparkStreaming程式需要了解Dstream。
一個抽象。流計算,資料來源往往分佈在多臺計算。
Dstream屬於離散(多臺機器)資料流,我們在streaming程式中以Dstream表示。
首先建立Dstream,對Dstream進行處理就可以了。
rdd的型別:
1)transformation
2) action
Dstream也存在Transformation與action。Dstream其實也就是對rdd的高階包裝。
Dstream如果接受實時的資料流會把資料切分為批次,這個批次會被spark引擎處理。
對於每個批次都會產生結果。
4.使用spark-Streaming進行流式wordcount計算
package day07
import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
import org.apache.spark.streaming.{Milliseconds, StreamingContext}
import org.apache.spark.{SparkConf, SparkContext}
/*
rdd:建立程式入口 sparkContext
dataframe: sparkSession
Dstream:
*/
object WordCount {
def main(args: Array[String]): Unit = {
//1.建立sparkCOntect
val conf = new SparkConf().setAppName("WordCount").setMaster("local[2]")
val sc = new SparkContext(conf)
//2.建立streamingContext
val ssc: StreamingContext = new StreamingContext(sc,Milliseconds(2000))
//3.可以建立Dstream, 首先接入資料來源
//socket
val data: ReceiverInputDStream[String] =
ssc.socketTextStream("192.168.64.111",7788)
//4.進行計算,建立dstream
val rd: DStream[(String, Int)] = data
.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)
//5.列印結果
rd.print()
//6.注意:需要啟動sparstreaming程式
ssc.start()
ssc.awaitTermination()
}
}
相關文章
- hadoop基礎學習三十一(spark-streaming)HadoopSpark
- spark-streaming之 socketTextStreamSpark
- pagetable的使用學習
- AJAX的學習使用
- AI工具的學習使用AI
- Pytest學習(四) - fixture的使用
- VUEX state 的使用學習二Vue
- github使用學習Github
- Flutter之FutureBuilder的學習和使用FlutterRebuild
- Django學習(二) 之 模板的使用Django
- Pytest學習(七) - skip、skipif的使用
- Pytest學習(二) - 斷言的使用
- zookeeper學習02 使用
- 學習去使用 Ajax
- 學習使用ExpressJS 4.0中的新RouterExpressJS
- laravel框架學習之路(二)pjax的使用Laravel框架
- 關於Apache Tika的學習和使用Apache
- Vue學習筆記之Webpack的使用Vue筆記Web
- Pytest學習(三) - setup和teardown的使用
- innodb學習筆記(一) aio的使用筆記AI
- Egg 學習筆記 - 外掛的使用筆記
- 初次學習 Docker Volume 的基本使用 (四)Docker
- Hadoop學習之路(十)HDFS API的使用HadoopAPI
- Jetpack Compose學習(2)——文字(Text)的使用Jetpack
- Beautiful Soup庫的使用(學習筆記)筆記
- 【每日學習記錄】使用錄影裝置記錄每天的學習
- 深度學習之遷移學習介紹與使用深度學習遷移學習
- iOS 學習使用 Swift CodableiOSSwift
- Shell學習【變數使用】變數
- cmake中使用gtest學習
- 學習使用RSocket - Waldemar Panas
- 學習Grafana初級使用Grafana
- VUEX 使用學習三 : mutationsVue
- VUEX 使用學習五 : getterVue
- 學習瞭解使用dockerDocker
- node學習—express基本使用Express
- 小白的學習筆記——Redis的簡單使用筆記Redis
- vue/cli的學習10 二級路由的使用Vue路由