- Spark快速大數據分析(第2版)
- (美)朱爾斯·S. 達米吉 布魯克·韋尼希 丹尼·李 (印)泰瑟加塔·達斯
- 309字
- 2021-12-06 11:51:03
1.2.1 快速
Spark 通過多種手段來追求速度。第一,近期硬件行業迎來了大幅提高 CPU 和內存性能并降低價格的大潮,而 Spark 的內部實現從中獲益巨大。現在的商品服務器價格低廉、具備上百 GB 的內存、具有多處理核心,而且底層的類 Unix 操作系統能夠充分發揮多線程和并行處理的能力。Spark 框架專門針對這些特點進行了優化。
第二,Spark 將查詢計算構建為有向無環圖(directed acyclic graph,DAG),然后用其 DAG 調度器和查詢優化器構建出高效的計算圖,圖中每個節點一般可以分解為一組任務,在集群的工作節點上并行執行。
第三,Spark 的物理執行引擎 Tungsten 使用全局代碼生成功能,以生成緊湊的代碼用于執行(第 3 章將介紹 SQL 優化和全局代碼生成功能)。
所有中間結果都保留在內存中,并且磁盤讀寫不多,這極大地提高了 Spark 的性能。