91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

第84課:StreamingContext、DStream、Receiver深度剖析

發布時間:2020-08-04 18:04:26 來源:網絡 閱讀:395 作者:Spark_2016 欄目:大數據

本課分成四部分講解,第一部分對StreamingContext功能及源碼剖析;第二部分對DStream功能及源碼剖析;第三部分對Receiver功能及源碼剖析;最后一部分將StreamingContext、DStream、Receiver結合起來分析其流程。

一、StreamingContext功能及源碼剖析:

1、  通過Spark Streaming對象jssc,創建應用程序主入口,并連上Driver,接收數據服務端口9999寫入源數據

第84課:StreamingContext、DStream、Receiver深度剖析

2、  Spark Streaming的主要功能有:

  • 主程序的入口;

  • 提供了各種創建DStream的方法接收各種流入的數據源(例如:Kafka、Flume、Twitter、ZeroMQ和簡單的TCP套接字等);

  • 通過構造函數實例化Spark Streaming對象時,可以指定master URL、appName、或者傳入SparkConf配置對象、或者已經創建的SparkContext對象;

  • 將接收的數據流傳入DStreams對象中;

  • 通過Spark Streaming對象實例的start方法來啟動當前應用程序的流計算框架或通過stop方法結束當前應用程序的流計算框架;

    第84課:StreamingContext、DStream、Receiver深度剖析

二、DStream功能及源碼剖析:

1、  DStream是RDD的模板,DStream是抽象的,RDD也是抽象

2、  DStream的具體實現子類如下圖所示:

 第84課:StreamingContext、DStream、Receiver深度剖析

3、  以StreamingContext實例的socketTextSteam方法為例,其執行完的結果返回DStream對象實例,其源碼調用過程如下圖:

第84課:StreamingContext、DStream、Receiver深度剖析

第84課:StreamingContext、DStream、Receiver深度剖析

第84課:StreamingContext、DStream、Receiver深度剖析

第84課:StreamingContext、DStream、Receiver深度剖析

第84課:StreamingContext、DStream、Receiver深度剖析

第84課:StreamingContext、DStream、Receiver深度剖析

socket.getInputStream獲取數據,while循環來存儲數據(內存、磁盤)

三、Receiver功能及源碼剖析:

1、Receiver代表數據的輸入,接收外部輸入的數據,如從Kafka上抓取數據;

2、Receiver運行在Worker節點上;

3、Receiver在Worker節點上抓取Kafka分布式消息框架上的數據時,具體實現類是KafkaReceiver;

4、Receiver是抽象類,其抓取數據的實現子類如下圖所示:

 第84課:StreamingContext、DStream、Receiver深度剖析

5、  如果上述實現類都滿足不了您的要求,您自己可以定義Receiver類,只需要繼承Receiver抽象類來實現自己子類的業務需求。

四、StreamingContext、DStream、Receiver結合流程分析:

 第84課:StreamingContext、DStream、Receiver深度剖析

(1)inputStream代表了數據輸入流(如:Socket、Kafka、Flume等)

(2)Transformation代表了對數據的一系列操作,如flatMap、map等

(3)outputStream代表了數據的輸出,例如wordCount中的println方法:

第84課:StreamingContext、DStream、Receiver深度剖析

第84課:StreamingContext、DStream、Receiver深度剖析

第84課:StreamingContext、DStream、Receiver深度剖析

數據在流進來之后,最終還是基于RDD進行執行,在處理流進來的數據時是DStream進行Transformation,StreamingContext會根據Transformation生成DStreamGraph,而DStreamGraph就是DAG的模板,這個模板是被框架托管的。當我們指定時間間隔的時候,Spark Streaming框架會自動觸發Job,所以在開發者編寫好的Spark代碼時(如:flatMap、collect、print),不會導致job的運行,job運行是
Spark Streaming框架自動產生的。

總結:

使用Spark Streaming可以處理各種數據來源類型,如:數據庫、HDFS,服務器log日志、網絡流,其強大超越了你想象不到的場景,

只是很多時候大家不會用,其真正原因是對Spark、spark streaming本身不了解。

備注:

資料來源于:DT_大數據夢工廠(IMF傳奇行動絕密課程)

更多私密內容,請關注微信公眾號:DT_Spark

如果您對大數據Spark感興趣,可以免費聽由王家林老師每天晚上20:00開設的Spark永久免費公開課,地址YY房間號:68917580


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐山市| 荔波县| 新竹县| 五华县| 友谊县| 宿松县| 邢台市| 上高县| 阜宁县| 景谷| 广西| 英德市| 荥阳市| 哈密市| 阳原县| 南郑县| 蚌埠市| 浦县| 乐亭县| 安陆市| 无锡市| 临澧县| 红桥区| 庐江县| 蒙山县| 恩平市| 贵州省| 都兰县| 大埔区| 昌都县| 墨玉县| 平昌县| 兴文县| 广汉市| 治县。| 扎兰屯市| 青州市| 辰溪县| 鄂伦春自治旗| 通道| 临清市|