《Apache Spark 1.6發布》要點:
本文介紹了Apache Spark 1.6發布,希望對您有用。如果有疑問,可以聯系我們。
維易PHP培訓學院每天發布《Apache Spark 1.6發布》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
本日我們非常高興能夠發布Apache Spark 1.6,通過該版本,Spark在社區開發中達到一個重要的里程碑:Spark源碼貢獻者的數據已經超過1000人,而在2014年年末時人數只有500.
那么,Spark 1.6有什么新特性呢?Spark 1.6有逾千個補丁.在本博文中,我們將重點突出三個主要的開發主題:性能提升、新的DataSet API和數據科學函數的擴展.
根據我們2015年Spark調查申報,91%的用戶認為性能是Spark最重要的方面,因此,性能優化是我們進行Spark開發的一個重點.
Parquet性能:Parquet已經成為Spark中最常用的數據格式之一,同時Parquet掃描性能對許多大型應用程序的影響巨大.在以前,Spark的Parquet讀取器依賴于parquet-mr去讀和解碼Parquet文件.當我們在編寫Spark應用程序時,必要花很多的時間在“記錄裝配(record assembly)”上,以使進程能夠將Parquet列重建為數據記錄.在Spark 1.6中,我們引入了新的Parquet讀取器,它繞過parquert-mr的記錄裝配并使用更優化的代碼路徑以獲取扁平模式(flat schemas).在我們的基準測試當中,通過5列測試發現,該新的讀取器掃描吞吐率可以從290萬行/秒增加到450萬行/秒,性能提升接近50%.
自動內存管理:Spark 1.6中另一方面的性能提升來源于更良好的內存管理,在Spark 1.6之前,Spark靜態地將可用內存分為兩個區域:執行內存和緩存內存.執行內存為用于排序、hashing和shuffling的區域,而緩存內存為用于緩存熱點數據的區域.Spark 1.6引入一新的內存管理器,它可以自動調整不同內存區域的大小,在運行時根據執行程序的必要自動地增加或縮減相應內存區域的大小.對許多應用程序來說,它意味著在無需用戶手動調整的情況下,在進行join和aggregration等操作時其可用內存將大量增加.
前述的兩個性能提升對用戶來說是透明的,使用時無需對代碼進行修改,而下面的改進是一個新API能夠保證更好性能的例子.
流式狀態管理10倍性能提升:在流式應用程序當中,狀態管理是一項重要的功能,常常用于維護aggregation或session信息.通過和許多用戶的共同努力,我們對Spark Streaming中的狀態管理API進行了重新設計,引入了一個新的mapWithState API,它可以根據更新的數量而非整個記錄數進行線性擴展,也便是說通過跟蹤“deltas”而非總是進行所有數據的全量掃描的方式更加高效.在許多工作負載中,這種實現方式可以獲得一個數量級性能提升.我們創建了一個notebook以說明如何使用該新特性,不久后我們也將另外撰寫相應的博文對這部分內容進行說明.
在本年較早的時候我們引入了DataFrames,它提供高級函數以使Spark能夠更好地理解數據結構并執行計算,DataFrame中額外的信息可以使Catalyst optimizer和Tungsten執行引擎(Tungsten execution engine)自動加速實際應用場景中的大數據分析.
自從我們發布DataFrames,我們得到了大量反饋,其中缺乏編譯時類型平安支持是諸多重要反饋中的一個,為解決這該問題,我們正在引入DataFrame API的類型擴展即Datasets.
Dataset API通過擴展DataFrame API以支持靜態類型和用戶定義函數以便能夠直接運行于現有的Scala和Java類型基礎上.通過我們與經典的RDD API間的比擬,Dataset具有更好的內存管理和長任務運行性能.
請參考Spark Datasets入門這篇博文.
機器學習流水線持久化:許多機器學習應用利用Spark ML流水線特性構建學習流水線,在過去,如果程序想將流水線持久化到外部存儲,需要用戶自己實現對應的持久化代碼,而在Spark 1.6當中,流水線API提供了相應的函數用于保留和重新加載前一狀態的流水線,然后將前面構建的模型應用到后面新的數據上.例如,用戶通過夜間作業訓練了一個流水線,然后在生產作業中將其應用于生產數據.
新的算法和能力:本版本同時也增加了機器學習算法的范圍,包含:
本博文只給出了本發布版本中的主要特性,我們也編譯了.
在接下來的幾周內,我們將陸續推出對這些新特性進行更詳細說明的博文,請繼承關注Databricks博客以便了解更多關于Spark 1.6的內容.如果你想試用這些新特性,Databricks可以讓你在保存老版本Spark的同時使用Spark 1.6.注冊以獲取免費試用帳號.
若沒有1000個源碼貢獻者,Spark現在不可能如此成功,我們也趁此機會對所有為Spark貢獻過力量的人表現感謝.
原文地址:Announcing Spark 1.6(譯者/牛亞真 審校/朱正貴 責編/仲浩)
譯者介紹:牛亞真,中科院計算機信息處置專業碩士研究生,關注大數據技術和數據挖掘方向.