根據 IDC 的數據,每年生成的數據量呈指數級增長。 IDC 的全球 DataSphere 預測 到 2026 年,世界將產生 221 ZB 的數據?。這些數據包含了驚人的信息。但隨著數據量的增長,處理成本也會隨之增加。作為一名數據科學家或工程師,你肯定會感受到數據處理工作運行緩慢的痛苦。
Apache Spark 在 2010 年代以數千 TB 的規模解決了這個數據處理問題。然而,在 20 世紀 20 年代,需要處理的數據量已經超過了當前基于 CPU 的基礎設施計算能力。
對于擁有數十萬 TB 的組織來說,這種基于 CPU 的基礎架構限制了它們,并增加了巨大的擴展成本。計算限制限制了他們利用數據擴展見解、獲取可用于訓練 AI / ML 管道的數據以及實驗新模型類型的能力。
舊規則成立: 80% 的時間用于數據準備,而不是模型開發,這阻礙了數據科學的發展。
為了解決這些挑戰, Apache3.x 的最新更新提供了新的優化功能,如資源感知調度和列式數據處理。使用針對 Apache Spark 的 RAPIDS 加速器,可以在 NVIDIA GPU 上自動調度作業,以加快數據處理速度。此解決方案要求零代碼更改。
我們很高興宣布與谷歌云 Dataproc 的新集成。在云上,運行數據處理作業的成本比同等的基于 CPU 的基礎架構低 80% ,加速速度高達 5 倍。
Dataproc 在云中提供完全管理的 Apache Spark 服務。憑借平均 90 秒內創建任何 Spark 集群的能力、企業級安全性以及與其他 Google 云服務的緊密集成, Dataproc 為部署 Apache Spark 應用程序提供了強大的平臺。
本文介紹了如何在 Dataproc 上的 Spark 工作負載上開始使用 GPU 加速。我們討論了 CPU 到 GPU 遷移的不同挑戰,并解釋了如何加快數據處理管道。我們重點介紹了 Dataproc 的新 RAPIDS 加速器用戶工具,這些工具有助于為您成功做好準備,例如提供關于哪些工作在 GPU 上表現最好的見解。
加快數據處理作業
通過將 RAPIDS cuDF 庫與 Apache Spark 的橫向擴展功能相結合,數據從業者可以 使用 GPU 快速且經濟高效地處理數據?。用于 Apache GPU 的 RAPIDS 加速器是一個插件,它使您能夠通過利用 Spark 來加速 Apache Spark 3 個作業。
無需您更改 API , RAPIDS Accelerator for Apache Spark 工具會盡可能自動將 GPU 支持的 SQL 操作替換為 GPU 加速版本,而在其他情況下則返回 Spark CPU 。因為不需要代碼或主要的基礎結構更改,所以您可以迭代設計工作負載,以優化性能和預算。
最后,新的 RAPIDS Accelerator user tools for Dataproc 提供了一組功能,在將 Spark 作業遷移到 GPU 時支持數據科學家。這包括差距分析和工作量建議。數據從業者可以更好地確定哪些 Spark 作業在遷移到 GPU 時會看到最佳的加速。
CPU 到 – GPU 遷移的難點
盡管 RAPIDS Accelerator for Apache Spark 提供了對 GPU 的支持遷移,但 Spark 用戶通常不愿意進行遷移,因為在遷移過程中存在假定的痛點。在這篇文章中,我們將深入探討這些常見問題,并展示用于 Dataproc 的新 RAPIDS Accelerator 用戶工具的功能如何緩解這些問題。
挑戰 1 :將 Spark 工作崗位轉移到 GPU 的成本不易預測
許多數據從業者認為在 GPU 上運行應用程序會更昂貴,盡管花費的時間更少。實際上,這種情況很少發生。
Resolution: RAPIDS Accelerator for Apache Spark 工作負載確認工具分析基于 CPU 的 Spark Application 生成的 Spark 事件日志。它為您提供了前期成本估算,以幫助量化將 Spark 應用程序或查詢遷移到 GPU 的預期加速和成本節約。
挑戰 2 :尚不清楚哪些 Spark 工作適合 GPU 遷移
并非所有應用都適用于 GPU 加速。您不希望將 GPU 資源分配給 Spark 作業,該作業不會從由此產生的加速中受益。
Resolution: 工作負載確認工具還使您能夠預先確定建議在 GPU 上運行哪些應用程序或作業,并為 Apache Spark 使用 RAPIDS 加速器。
挑戰# 3 : 沒有預先確定的方法來計算 GPU 資源需求
為任何工作負載選擇和調整硬件大小,無論是 CPU 還是 GPU ,都可能具有挑戰性。錯誤設置資源和配置可能會影響成本和性能。
Resolution: RAPIDS Accelerator for Apache Spark 引導工具支持為 GPU 群集應用 最佳配置設置 的功能。
挑戰 4 : 可用于調諧和配置的參數太多
在 GPU 上運行作業時,您需要縮小 GPU 的最佳候選范圍。這需要您提供優化和配置的最佳參數。
Resolution: 使用新的分析工具, CPU 作業運行中的 Spark 日志用于計算運行 Spark 應用程序的建議每個應用程序 Spark GPU 配置設置。
挑戰 5 :計算基礎設施的變化帶來了高昂的成本
切換工作負載需要時間、金錢和人力。這成為了嘗試新技術的障礙 ,即使它解決了關鍵的痛點,因為在業務關鍵型應用程序中進行投資的風險。
Resolution: 在云上,交換機被簡化。數據科學家可以在不修改代碼的情況下對其進行測試,而且成本最低。在使用 Dataproc 時,您每小時租用一次基礎設施,這樣就不需要為運送到數據中心的硬件支付預付款。您還可以跟蹤成本和性能差異。
如果您選擇切換回 CPU ,則可以毫不費力地恢復。
在 Google Cloud Dataproc 中使用 RAPIDS Accelerator for Apache Spark 遷移工作負載
既然我們已經討論了 RAPIDS 加速器如何在降低成本的同時加快 Spark 工作,下面是如何在實踐中使用它。
資格
資格鑒定有助于數據科學家確定和評估 RAPIDS Accelerator for Apache Spark 的成本節約和加速潛力。鑒定要求為 GPU 遷移選擇活動 GPU Spark 集群。鑒定結果顯示了推薦用于 RAPIDS Accelerator for Apache Spark 的應用程序列表,預計可節省費用并加快速度。
獨自創立
Bootstrap 根據集群形狀為 Apache RAPIDS 配置提供并更新 GPU Dataproc 集群,并優化 RAPIDS 加速器。這確保了在 GPU Dataproc 集群上執行的 Spark 作業可以使用所有資源并無錯誤地完成。
調諧
Bootstrap 還可確保作業在功能上通過,但調優會根據使用 Spark 事件日志運行的初始(引導)作業,優化 RAPIDS Accelerator for Apache Spark 配置。輸出顯示了 Apache Spark 配置設置的推薦每個應用 RAPIDS 加速器。
通過這些新功能,您可以解決 CPU 到 GPU 的遷移問題,并加快 Spark 代碼的實現,而無需增加成本或復雜流程的挑戰。
后果
圖 1 顯示了在 Dataproc 和 NVIDIA GPU 上運行的 Spark NDS 基準測試*的加速和成本比較。在該基準測試中,與僅在 CPU 上運行相比,我們看到了接近 5 倍的速度提高和 78% 的成本降低。
*基準和基礎架構細節:僅 CPU 的四節點集群: 4xn1-standard-32 ( 32vCPU , 120GB RAM )。 GPU 四節點群集: 4xn1- 標準 -32 ( 32vCPU , 120 GB RAM )和 8xT4 NVIDIA GPU 。 NDS 代表 NVIDIA 決策支持基準,該基準源自 TPC-DS 基準,用于內部測試。 NDS 的結果與 TPC-DS 不可比。
接下來的步驟
使用 Apache Spark 的 RAPIDS 加速器,您可以利用 GPU 計算能力來實現 Spark 3 工作負載。通過對哪些作業最適合加速和優化 GPU 配置以及無 API 更改提供清晰的見解,您可以更快地運行關鍵 Spark 工作負載。這有助于您在相同的時間內處理更多數據,同時節省計算成本!
使用 Dataproc ,您可以在完全支持的環境中完成所有這些工作,并連接到 Google 云生態系統的其他部分。
通過在 GitHub 中遵循 CPU ,快速開始將 Spark CPU 工作負載遷移到 GCP Dataproc documentation 。您也可以下載 latest version of RAPIDS Accelerator 。
?