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
- AJAX的學習使用
- pagetable的使用學習
- Android UI學習 - Tab的學習和使用AndroidUI
- 【Mysql學習】LIMIT的使用MySqlMIT
- 【Mysql 學習】LIMIT 的使用MySqlMIT
- AI工具的學習使用AI
- AIDL使用學習(一):基礎使用學習AI
- VUEX state 的使用學習二Vue
- 要學習使用的安全工具
- github使用學習Github
- Auctex學習使用
- Flutter之FutureBuilder的學習和使用FlutterRebuild
- Pytest學習(四) - fixture的使用
- Django學習(二) 之 模板的使用Django
- NIO學習二、NIO的基本使用
- 【Mysql學習】mysql的使用入門MySql
- log4j的學習使用
- 學習oracle sql loader 的使用OracleSQL
- 【Mysql 學習】perror的使用方法MySqlError
- 【Mysql 學習】mysql 的使用入門MySql
- 關於Struts的學習和使用
- 學習去使用 Ajax
- zookeeper學習02 使用
- react 學習--使用MixinReact
- 【每日學習記錄】使用錄影裝置記錄每天的學習
- Vue學習筆記之Webpack的使用Vue筆記Web
- VNPY 價差交易模組的使用學習
- Pytest學習(七) - skip、skipif的使用
- Pytest學習(二) - 斷言的使用
- Beautiful Soup庫的使用(學習筆記)筆記
- innodb學習筆記(一) aio的使用筆記AI
- python 學習--map 和 reduce的使用Python
- html5 學習--漸變的使用HTML
- 關於Apache Tika的學習和使用Apache
- MyBatis學習——foreach標籤的使用MyBatis
- 深度學習之遷移學習介紹與使用深度學習遷移學習