1. 程式人生 > >Spark定製班第29課:深入理解Spark 2.x中的Structured Streaming內幕

Spark定製班第29課:深入理解Spark 2.x中的Structured Streaming內幕

本期內容: 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會走向完全實時的時代。所有的機器學習、圖計算都應該在流資料上進行計算。