介紹Apache火花2.3
2018年2月28日 在工程的博客
今天我們很高興地宣布的可用性Apache火花tripwire在磚作為它的一部分磚運行時4.0。我們想感謝Apache火花社區引發2.3版所有的有價值的貢獻。
繼續與目標火花更快,更容易,更聰明,火花2.3分的一個重要裏程碑結構化流引入低延遲連續處理和停工檢修連接;促進PySpark與熊貓udf通過改善性能;和運行在Kubernetes集群通過提供本機支持Apache火花應用程序。
除了新功能延伸到SparkR, Python, MLlib, GraphX,釋放關注可用性、穩定性、和細化,解決1400多票。其他特色火花貢獻者包括:
- 數據源v2 api (火星- 15689,火星- 20928]
- 矢量化獸人讀者(火星- 16060]
- 火花曆史服務器v2和離子束進行存儲(火星- 18085]
- 機器學習與結構化流管道API模型評分(火星- 13030,火星- 22346,火星- 23037]
- MLlib增強了(火星- 21866,火星- 3181,火星- 21087,火星- 20199]
- 火花SQL改進(火星- 21485,火星- 21975,火星- 20331,火星- 22510,火星- 20236]
在這篇文章中,我們簡要總結的一些高級特性和改進,在未來的日子裏,我們將為這些特性深入發布博客。主要功能的綜合列表所有組件和火花jira解決,閱讀Apache火花tripwire發行說明。
在毫秒延遲連續流處理
結構化流在Apache 2.0火花解耦micro-batch處理的高級api是有原因的。首先,它使開發人員的經驗與api簡單:api不需要占micro-batches。第二,它允許開發者將流視為無限表,他們可以發出查詢一個靜態表。
然而,為開發者提供不同模式的流處理,我們引入了一個新的毫秒低延遲流媒體方式:連續模式。
在引擎蓋下,逐步執行查詢計算micro-batches結構化流引擎,由觸發間隔,適合大多數真實的流媒體應用程序的延遲。
為連續模式micro-batch執行,而是流讀者不斷調查來源和處理數據,而不是在指定讀取一批數據觸發間隔。通過不斷輪詢消息來源和處理數據,處理新記錄立即到達,時間軸下圖所示,減少延遲毫秒和令人滿意的低延遲需求。
至於操作,目前支持的類似數據集操作,比如預測或選擇和SQL函數,除了current_timestamp ()
,當前日期()
和聚合函數。以及支持Apache卡夫卡作為源和彙,連續模式目前支持控製台和記憶下沉。
現在開發者可以選擇mode-continuous或micro-batching-depending在他們的延遲需求構建實時流媒體應用程序規模,同時受益於容錯性和可靠性保證結構化流引擎提供。
簡而言之,連續模式在火花2.3實驗和它提供以下:
- 端到端毫秒低延遲
- 提供“至少一次”保證。
- 支持數據集的類似操作
在這個技術博客連續處理模式中,我們說明了如何使用它,它的優點,
開發人員可以編寫如何連續流具有毫秒低延遲需求的應用程序。
停工檢修連接
在結構化流火花2.0支持之間的連接流DataFrame /數據集和一個靜態的,這個版本引入了備受期待的停工檢修連接,內部和外部連接眾多實時用例。
連接兩個流的典型用例是ad-monetization。例如,印象流和一個點擊一個廣告流共享一個公共密鑰(說,去)您希望進行流媒體和相關數據分析,比如,去導致了點擊。
雖然概念上的想法是簡單,停工檢修加入解決一些技術難題。例如,他們:
- 處理延遲數據緩衝末事件流“狀態”,直到找到匹配事件從其他流
- 限製了內存緩衝區從種植和消費與水印,它允許跟蹤事件時間和相應的結算狀態
- 允許用戶控製狀態和所消耗的資源之間的權衡的最大延遲處理的查詢
- 保持一致的SQL join靜態連接和流之間的語義連接
在這個技術博客,我們深入研究streams-to-stream連接。
Apache火花和Kubernetes
難怪兩個流行的開放源碼項目Apache火花和Kubernetes結合它們的功能和效用提供分布式數據處理和編製在規模。在火花2.3中,用戶可以啟動火花Kubernetes的本地工作負載集群利用新的Kubernetes調度程序的後端。這有助於獲得更好的資源利用率和多租戶通過使火花工作負載共享Kubernetes與其他類型的工作負載集群。
此外,火花可以運用行政等特性資源配額,可插拔的授權,日誌記錄。更重要的是,就這麼簡單創建一個碼頭工人形象和建立開始使用你現有的RBAC Kubernetes火花工作負載集群。
這技術博客解釋了如何使用本機火花Kubernetes以及如何參與這個社區的努力。
熊貓的udf PySpark
大熊貓udf,也稱為矢量化udf,是一個主要的推動PySpark性能。建立在之上Apache箭頭,他們負擔得起你最好的兩人世界的能力定義低開銷,高性能udf和用Python寫完全。
在火花2.3中,有兩種類型的熊貓udf:標量和分組的地圖。現在都是火花2.3中可用。李進兩個σ寫了早期的博客通過四個例子,解釋它們的用法:+ 1,累積概率,減去的意思是,普通最小二乘線性回歸。
運行某些微基準,熊貓udf演示數量級比row-at-time udf更好的性能。
根據李進和其他貢獻者,他們計劃在聚合引入支持大熊貓udf和窗口功能,可以跟蹤及其相關工作火星- 22216。
MLlib改進
火花2.3包括許多MLlib改進算法和功能,性能和可伸縮性和可用性。我們提到三個亮點。
首先,移動MLlib模型和管道生產、安裝結構模型和管道現在工作在流媒體工作。一些現有的管道需要修改在流進行預測工作,所以尋找即將到來的博客遷移技巧。
第二,使許多深度學習圖像分析用例,火花2.3引入了一個ImageSchema(火花- 21866)代表圖像的火花DataFrames +實用程序加載圖像常見格式。
最後,對於開發人員來說,火花在Python 2.3引入了改進的api編寫自定義算法,包括UnaryTransformer
編寫簡單的自定義特性變形金剛和公用事業自動化毫升持久化保存和加載算法。看到這個博客獲取詳細信息。
接下來是什麼?
再一次,我們要感謝所有引發社會的貢獻!
而這篇文章隻有總結的一些特征在本版本中,你可以閱讀官方的發布說明看到變化的完整列表。請繼續關注我們將出版技術博客解釋其中的一些特性。
如果你想嚐試Apache 2.3火花磚4.0運行時。注冊一個免費試用帳戶在這裏