今天Cloudera正式宣佈發佈CDS3,基於Apache Spark 3.0.1,參考:
https://spark.apache.org/news/spark-3-0-1-released.html
這是一個正式版本,可以生產系統中使用。而且這個版本受Cloudera Support支持。對於Spark3的新特性,可以參考文章《開源生態的新發展:Apache Spark 3.0、Koala和Delta Lake》。
以下是Spark3的關鍵新特性:
1.Spark3的TPC-DS性能進一步提升;
2.語言支持
a)Scala version is upgraded to 2.12
b)JDK11 is fully supported.
c)Python3.6+ is supported. Python 2 and Python 3 prior to version 3.6 are deprecated
3.Adaptive execution of Spark SQL
a)對於AQE而言,最重要的問題就是什麼時候去重新計算優化執行計劃。Spark任務的算子如果管道排列,依次並行執行。然而,shuffle或者broadcast exchange會打斷算子的排列執行,我們稱其爲物化點(Materialization Points),並且用"Query Stages"來代表那些被物化點所分割的小片段。每個Query Stage會產出中間結果,當且僅當該stage及其並行的所有stage都執行完成後,下游的Query Stage才能被執行。所以當上遊部分stage執行完成,partitions的統計數據也獲取到了,並且下游還未開始執行,這就給AQE提供了reoptimization的機會。在查詢開始時,生成完了執行計劃,AQE框架首先會找到並執行那些不存在上游的stages。一旦這些stage有一個或多個完成,AQE框架就會將其在physical plan中標記爲完成,並根據已完成的stages提供的執行數據來更新整個logical plan。基於這些新產出的統計數據,AQE框架會執行optimizer,根據一系列的優化規則來進行優化;AQE框架還會執行生成普通physical plan的optimizer以及自適應執行專屬的優化規則,例如分區合併、數據傾斜處理等。於是,我們就獲得了最新優化過的執行計劃和一些已經執行完成的stages,至此爲一次循環。接着我們只需要繼續重複上面的步驟,直到整個query都跑完。
4.Dynamic Partition Pruning (DPP)
a)Spark 3.0引入了動態分區裁剪功能,這是SQL分析工作負載的一項重大性能改進。DPP背後的想法是將維度表上的篩選器集直接應用到事實表上,以便跳過掃描不需要的分區。DPP的優化是在邏輯計劃優化和物理計劃上實現的。它大大增強了許多TPC-DS查詢的速度,並且可以很好的適應星型模型,而無需對錶進行反範式化(Denormalization)。
5.Binary files data source
a)Spark 3.0支持二進制文件數據源。它可以讀取二進制文件,並將每個文件轉換爲包含文件原始內容和元數據的一行。
6.DataSource V2 Improvements
a)Pluggable catalog integration
b)改進謂詞下推功能,可通過減少數據加載來加快查詢速度
7.YARN Features
a)Spark 3.0可以自動在YARN集羣上發現GPU,並將任務調度到指定的GPU節點。
8.Kafka connector delegation token (0.10+)
a)對應用只需要配置Spark的參數就可以完成認證登錄,而不是非需要使用JAAS配置登錄。
該試驗版本不支持以下組件:
Hive Warehouse Connector
Kudu
HBase Connector
Oozie
Livy
Zeppelin
參考文檔:
https://docs.cloudera.com/cdp-private-cloud-base/7.1.3/cds-3/topics/spark-spark-3-overview.html
下載地址:
http://archive.cloudera.com/p/spark3/3.0.7110.0/csd/SPARK3_ON_YARN-3.0.1.3.0.7110.0-81.jar
https://archive.cloudera.com/p/spark3/3.0.7110.0/csd/LIVY_FOR_SPARK3-0.6.0.3.0.7110.0-81.jar
http://archive.cloudera.com/p/spark3/3.0.7110.0/parcels/
更多下載信息可以後臺留言瞭解。
本文分享自微信公衆號 - Hadoop實操(gh_c4c535955d0f)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。