Spark定製班第29課:深入理解Spark 2.x中的Structured Streaming內幕
阿新 • • 發佈:2019-02-03
本期內容:
1. 新型的Spark Streaming思維
2. Structured Streaming內幕
Spark 2.0 仍有bug,不適合於生成環境。只用於測試。
Spark 2.X提出了continuous application(連續的應用程式)的概念,非常重大。
如圖例所示,資料通過Kafka流進來,經過ETL,
SS把資料看成一張表。一張沒有邊際的表、
Eventtime,事件觸發器,以後再展開來分析。通過JDBC訪問資料。
多個query並行執行。
官方說2.0的正式版本並沒有線上機器學習功能了。
快速的、容錯的、exactly-once,有狀態的流處理。不用清楚底層的流是怎麼回事。
delta input: 增量更新。有更新的部分時,才更新。 從物理級別看的內容:
StructureStreaming基於DataSet、DataFrame,沒有涉及DStream了。沒有資料收集過來再處理這樣的概念,資料就一直在了。
上例中將兩個dataset進行join操作,更符合RDD的API,不需要foreachRDD後門了。 API級別的很大優勢。
預設情況下,DataSet、DataFrame是static bounded data,流處理是streaming unbounded data。API把兩者融合了。 可以認為Planner是一個翻譯器或路由器,基於DataFrame和DataSet程式碼來決定是否走Spark SQL的UnResult、Result Logic Plan、Optimized Logic Plan等,編碼者不需要關心這些東西了。 Spark會走向完全實時的時代。所有的機器學習、圖計算都應該在流資料上進行計算。
快速的、容錯的、exactly-once,有狀態的流處理。不用清楚底層的流是怎麼回事。
delta input: 增量更新。有更新的部分時,才更新。 從物理級別看的內容:
StructureStreaming基於DataSet、DataFrame,沒有涉及DStream了。沒有資料收集過來再處理這樣的概念,資料就一直在了。
上例中將兩個dataset進行join操作,更符合RDD的API,不需要foreachRDD後門了。 API級別的很大優勢。
預設情況下,DataSet、DataFrame是static bounded data,流處理是streaming unbounded data。API把兩者融合了。 可以認為Planner是一個翻譯器或路由器,基於DataFrame和DataSet程式碼來決定是否走Spark SQL的UnResult、Result Logic Plan、Optimized Logic Plan等,編碼者不需要關心這些東西了。 Spark會走向完全實時的時代。所有的機器學習、圖計算都應該在流資料上進行計算。