本篇分享來自Martei在Spark AI Submit 2020的開場分享。
馬鐵是誰
什麼!你不知道馬鐵是誰?Martei Zaharia(說實話,不知道誰給起的中文名字叫馬鐵,跟著叫就是了),現任Databricks的CTO,也許Databricks你也不是很熟,Spark總是聽過的吧?可以說Spark就出自Martei之手,專案開源後組了個公司專門基於Spark提供企業服務。
先來看看Martei大神在LinkedIn的簡歷,你就知道他的背景有多牛了:
- 2003-2007,就讀於滑鐵盧大學(加拿大前三的大學)
- 2007-2012,就讀於加州伯克利讀博,其中07年在google實習3個月,08年在facebook實習一年.
- 2015-2016,在MIT麻省理工任副教授。
- 2016-至今,在史丹佛任副教授。
- 從09年開始加入Apache,成為hadoop的commiter,14年開始成為apache spark的VP,13年開始擔任Databricks的CTO。
可以說想要學習現在最先進的分散式知識,follow下馬鐵的twitter就行了。
Spark的過去10年
回頭再來說說本次的分享,顯示回憶了Spark的發展歷程,然後介紹了當前Spark 3.0的主要特性,介紹Spark相關的生態元件。中間有美女介紹了koalas的使用以及3.0相關的特性展示。最後Martei推薦了《Learning Spark》第二版這本書。最後展望Spark的未來表示會持續優化 Spark 在探索資料分析和生產應用上的易用性,豐富Spark生態體系。
- 2007年Martei攻讀博士,主要的研究方向是p2p系統。
- 2008年在雅虎和facebook開始接觸資料中心,涉及到分散式與大資料計算。可惜當時的分散式計算主要是依賴於MapReduce,編寫困難,缺乏互動式的查詢,也不支援機器學習。
- 2009回到伯克利開始研究分散式機器學習框架,開始了Spark相關的工作。
- 2010年開源了第一版的Spark。
- 2010-2011年針對社群的需求,開始了互動式查詢、Streaming流處理、R和SQL API的支援等工作。
- 2012-2015年,豐富了Spark的生態,支援更多的API,比如Python、R、SQL;支援更多的元件庫,如機器學習、圖計算、流計算;支援更高階的API,比如DataFrame、Spark SQL等。
至今為止,有68%的使用者在notebook中使用Python操作Spark;超過90%的API通過Spark SQL來執行。
總結過去的Spark開源10年曆程,得到最大的經驗就是:
- 1 產品的易用性,無論是資料探索還是生產應用
- 2 API的最佳實踐,比如元件、測試、模組化。
Spark 3.0
最近Spark釋出了3.0版本,超過3400多次升級特性,46%與SQL相關:
最主要的特性有:
- 1 AQE,自適應查詢計劃。比如動態調整分割槽數、動態調整join演算法、自動處理資料傾斜問題
- 2 動態分割槽裁剪
- 3 編譯器速度優化
- 4 優化器程式碼提示
- 5 ANSI SQL的支援
- 6 Python API的優化
- 7 R API的優化
- 8 新的流處理UI、更易用的流指標統計、SQL使用文件、Data Source V2 API、GPU加速等。
相關的特性再上一篇也有介紹過,詳情前一篇文章:Spark 3.0 新特性
Spark的生態
比如:
- 1 基於pandas API呼叫Spark的Koalas
- 2 支援批流一體化的Delta Lake
- 3 Sklearn、Hyperort、Joblib等基於Spark的分散式擴充套件方案
- 4 用於大規模基因分析的GLOW
- 5 用於GPU加速的python庫rapids
- 6 用於視覺化的tableau, qlik, looker, redash等
參考
- Martei的LinkedIn:https://www.linkedin.com/in/mateizaharia/
最後關注公眾號,可以直接觀看文中視訊,回覆 learning spark 就可以獲得對應的電子書。