跳轉到主要內容
公司博客上

介紹Apache火花3.0

現在可以在磚7.0運行時
分享這篇文章

我們興奮地宣布,Apache火花TM3.0.0版本上可用磚作為我們的新磚7.0運行時的一部分。3.0.0版本包含超過3400個補丁和高潮來自開源社區的巨大貢獻,帶來重大進展在Python和SQL的能力和注重易用性對勘探和生產。這些行動反映了項目發展來滿足更多的用例和更廣泛的觀眾,與今年10周年紀念日的一個開源項目。

這裏有最大的火花3.0中的新特性:

不需要任何代碼更改主要采用這個版本的Apache火花。有關更多信息,請檢查遷移向導

慶祝10年的引發和演化發展

火花一開始的加州大學伯克利分校的AMPlab研究實驗室專注於數據密集型計算。AMPlab人員使用大型網際網路規模的公司在他們的數據和人工智能問題,但看到這些同樣的問題也會麵臨的所有公司巨大的和不斷增加的數據。團隊開發了一個新的引擎來解決這些新興的工作負載,同時使處理大數據的api更容易開發人員。

社區貢獻很快就擴大火花到不同的地區,周圍有新功能流、Python和SQL,現在這些模式占主導的一些用例火花。繼續投資帶來了火花到今天,作為事實上的數據處理引擎,數據科學、機器學習和數據分析的工作負載。Apache 3.0火花持續這種趨勢顯著改善支持SQL和Python今天和火花——兩個最廣泛使用的語言,以及優化性能和可操作性在火花。

改善火花的SQL引擎

火花的SQL引擎,支持大多數火花應用程序。例如,在磚上,我們發現超過90%火花的API調用使用DataFrame,數據集和SQL API以及其他庫優化的SQL優化器。這意味著即使Python和Scala開發人員的工作通過火花的SQL引擎。在3.0版本,46%所有的補丁了SQL,改善性能和ANSI兼容性。如下文所述,火花3.0執行大約2 x比火花總共2.4運行時。接下來,我們解釋四個新特性引發的SQL引擎。

自適應查詢執行(AQE)框架提高了性能和簡化了調優在運行時通過生成更好的執行計劃,即使最初計劃是理想由於缺席/不準確的數據統計和錯估成本。因為火花的存儲和計算分離,數據的到來都是不可預知的。所有這些原因,運行時自適應性變得更比傳統係統引發的關鍵。這個版本引入了三個主要的自適應優化:

  • 動態合並調整分區簡化甚至避免優化調整分區的數量。用戶可以設置一個相對大量的洗牌分區開始,然後AQE可以在運行時相鄰小分區合並成更大的。
  • 動態切換連接策略部分避免執行不佳的計劃由於缺少統計數據和/或misestimation大小。這種自適應優化可以自動轉換分類合並加入broadcast-hash加入在運行時,進一步簡化優化和提高性能。
  • 動態優化傾斜連接是另一個關鍵性能增強,因為傾斜連接可能會導致一個極端不平衡的工作和嚴重降低性能。AQE檢測後的任何斜洗牌文件統計信息,它可以斜分區分割成較小的和加入他們相應的分區從另一側。這種優化可以並行化傾斜處理,實現更好的整體性能。

基於3結核病TPC-DS基準,而沒有AQE,火花AQE能產生超過1.5 x的性能加速兩個查詢,超過1.1倍加速37查詢。

TPC-DS 3結核病鋪有與沒有自適應查詢執行。

TPC-DS 1 tb鋪有與沒有動態分區修剪

動態分區修剪應用時,優化器在編譯時無法確定它可以跳過的分區。這個明星模式中並不少見,包含一個或多個事實表引用任意數量的維度表。在這樣的連接操作,我們可以刪除分區連接讀取從事實表,通過識別那些由於過濾維度表的分區。TPC-DS基準,60 102查詢之間表現出顯著的加速2 x和18 x。

ANSI SQL合規從其他SQL工作負載遷移的關鍵引擎引發的SQL。改善遵從性,這個版本切換到預期的公曆,也允許用戶禁止使用ANSI SQL作為標識符的保留關鍵字。此外,我們已經介紹了運行時溢出檢查在數字操作和編譯時類型執行數據插入一個表與一個預定義的模式。這些新的驗證改進數據質量。

加入提示:當我們繼續改善編譯器時,不能保證編譯器可以使每個情況-加入算法選擇的最優決策是基於統計和啟發式。當編譯器無法做出最好的選擇,用戶可以使用加入提示來影響優化器選擇一個更好的計劃。這個版本擴展了現有加入提示通過添加新的提示:SHUFFLE_MERGE, SHUFFLE_HASH SHUFFLE_REPLICATE_NL。

提高Python api: PySpark和考拉
Python是現在使用最廣泛的語言在火花和,因此,是引發3.0開發的重點區域。68%磚上的筆記本命令是在Python中。PySpark, Apache火花Python API,還多500萬年指數月度PyPI上下載,Python包。

許多Python開發人員使用熊貓API的數據結構和數據分析,但它僅限於單節點處理。我們還繼續發展考拉,熊貓API的實現Apache火花,使數據科學家更有效率在處理大數據在分布式環境中。考拉消除了需要建立許多功能(例如,策劃支持)在PySpark,實現高效的性能在一個集群。

經過一年多的發展,考拉API覆蓋熊貓接近80%。考拉的月度PyPI下載已經迅速成長為850000年,考拉是兩周一次的發布節奏快速發展的。盡管考拉可能從單節點熊貓代碼遷移的最簡單方法,許多人仍然使用PySpark api,它也越來越受歡迎。

每周PyPI下載PySpark和考拉

火花PySpark api 3.0帶來了幾個增強:

  • 新的熊貓api類型提示:熊貓udf最初引發2.3中引入PySpark擴展用戶定義函數和熊貓api集成到PySpark應用程序。然而,現有的接口添加更多的UDF類型時很難理解。這個版本引入了一個新的熊貓UDF接口,利用Python類型提示地址熊貓UDF的擴散類型。新界麵變得更加神諭的和自描述的。
  • 新類型的熊貓熊貓udf和api函數:這個版本添加了兩個新的熊貓UDF類型,迭代器係列的迭代器係列迭代器的多個係列的迭代器係列。它是有用的數據預取和昂貴的初始化。另外,兩個新的pandas-function api,地圖co-grouped地圖是補充道。更多的細節是可用的博客
  • 更好的錯誤處理:對Python PySpark錯誤處理並不總是友好的用戶。這個版本簡化PySpark例外,隱藏不必要的JVM堆棧跟蹤,並使他們更預言的。

提高Python支持和可用性火花仍然是我們的一個最高優先級。

氫、流和可擴展性

火花3.0,我們已經完成了項目關鍵部件以及氫引入新功能來提高流媒體和可擴展性。

  • Accelerator-aware調度:項目氫是一個主要的火花計劃更好地統一引發深度學習和數據處理。gpu和其他加速器已廣泛用於促進深度學習的工作負載。使火花利用硬件加速器在目標平台上,這個版本增強了現有的集群管理器accelerator-aware調度器。Beplay体育安卓版本用戶可以指定加速器通過配置的幫助下發現腳本。用戶可以調用新的抽樣api來利用這些加速器。
  • 新的UI結構化流:結構化流最初是在火花2.0中引入的。磚在使用同比增長4倍後,超過5萬億條記錄每天處理與結構化流磚。此版本增加了一個專用的新的火花用戶界麵這些流工作的檢查。這個新的UI提供兩套統計:1)流聚合信息查詢工作完成,2)詳細統計數據流查詢信息。

趨勢記錄的數量由結構化處理流數據磚

  • 觀察指標:持續監控數據更改質量管理是一個非常理想的特性數據管道。這個版本引入了監控批處理和流媒體的應用程序。可觀測的指標是任意的聚合函數,可以定義一個查詢(DataFrame)。一旦執行DataFrame達到完成點(例如,完成批量查詢或到流媒體時代),命名事件包含的指標數據處理自上次完成點。
  • 新的目錄插件API:現有的數據源訪問和操作元數據API缺乏能力的外部數據源。這個版本豐富的數據源V2 API和引入了新的目錄插件API。外部數據源,實現目錄插件API和數據源V2 API,用戶可以直接操作外部表的數據和元數據通過多部分標識符,在相應的外部目錄登記。

3.0其他更新的火花

火花3.0是一個主要版本的社區,與3400多名Jira票解決。貢獻的結果從超過440個參與者,包括個人和公司,如磚,穀歌、微軟、英特爾、IBM、阿裏巴巴、Facebook、英偉達,Netflix, Adobe和許多更多。我們已經強調了一些關鍵的SQL, Python和流媒體的進步引發對於這個博客,但是還有許多其他的功能在這個3.0裏程碑不在這裏。學習更多的發布說明火花和發現所有其他的改進,包括數據源、生態係統、監控和更多。

主要功能在3.0和7.0磚運行時的火花。

今天開始使用火花3.0

如果你想嚐試Apache 3.0火花磚7.0運行時,注冊一個免費試用帳戶在幾分鍾內開始。使用火花3.0非常簡單,隻需選擇版本“7.0”時啟動集群。

3.0使用火花磚7.0運行時很簡單,從下拉菜單中選擇它當啟動集群。

了解更多關於特性和釋放的細節:

免費試著磚

相關的帖子

看到所有公司博客上的帖子
Baidu
map