隨著公司應對來自設備、用戶、網站等的數據量不斷增加,他們選擇用於分析這些數據的工具和平台變得比以往任何時候都更加重要。大數據分析提供了對業務關鍵的洞察,這些洞察也對時間至關重要,使得效率和效能至關重要。透過 Apache Spark SQL 上的大數據分析,工作負載往往會持續運行,需要高效能來加快洞察速度。這意味著公司可以證明整體上多花一點錢是合理的,以便每花一美元就能獲得更好的績效。在上一篇部落格中,我們探討了 Google Cloud™ 實例上的 Spark SQL 效能。在下一部分中,我們將研究 Apache Gluten 提高資料中心處理器效能的方法。
Spark 促進大規模資料科學
許多組織使用 Apache Spark 進行批次和串流處理、機器學習和其他人工智慧應用程式以及大規模 SQL。 Spark 使用分散式模型來促進大規模資料科學;資料駐留在跨叢集的多個伺服器上。在為任 香港流動電話號碼表 何給定查詢定位資料時,這種分佈需要一定量的開銷。查詢速度意味著更快的商業決策,是任何 Spark 工作負載的重要元素,對於機器學習訓練工作負載尤其如此。
使用麩質加速 Spark
雖然 Spark 是加速和簡化大數據處理的有效工具,但該公司一直在開發工具來增強它。其中一項努力是 Gluten,它是英特爾的最佳化分析套件 (OAP) Spark-SQL 執行引擎,可提高效能並將運算密集型關鍵資料處理卸載到本機加速器庫。 Gluten 依賴 Velox(Meta 的開源)C++ 通用資料庫加速函式庫,這是一個向量化 SQL 處理引擎,用於最佳化查詢引擎和資料處理系統。 Gluten 是 Spark 的一個插件,充當「負責將基於 JVM 的 SQL 引擎的執行卸載到本機引擎的中間層」。(1)借助英特爾處理器加速器和 Apache Gluten 插件,使用者可以顯著提高 Spark 工作負載的效能。
Gluten 的工作原理是將 Spark 查詢執行計劃轉換為 Substrait(資料處理的跨語言規範),並透過 JNI 呼叫將這些現在可讀的計劃傳遞給本機程式庫。執行計劃被建構出來並卸載到本機引擎,在本機引擎中它被有效地處理(Gluten 也控製本機記憶體分配)並作為列批處理返回到 Gluten。然後,Gluten 將資料作為 ArrowColumnarBatch 返回 Spark JVM。
Gluten 使用回退機制呼叫普通 Spark 來處理不支援的運算符,並使用填充層來支援多個 Spark 版本。 Gluten 記錄來自本機引擎的指標並將其顯示在 Spark 使用者介面中。
Gluten 外掛程式使用 Spark 自己的框架、控制流和 JVM 程式碼,同時將盡可能多的運算密集型資料處理部分卸載到本機程式碼。 Gluten 不需要在查詢端進行任何更改,因此現有的資料幀 API 和應用程式將與以前一樣運作,但速度更快。
使用 Intel CPU 和 Gluten 提高 Spark 效能
-
- Posts: 20
- Joined: Wed Dec 04, 2024 4:45 am