本頁面收錄了 Dataproc 無伺服器服務的常見問題與解答。
在哪些情況下,我應該使用 Dataproc Serverless for Spark,而非 Compute Engine 上的 Dataproc?
Dataproc Serverless:
- 支援 PySpark 核心 Jupyter 筆記本中的 Spark 批次工作負載和互動工作階段。
- Dataproc Serverless 會建立及管理工作負載和互動式工作階段基礎架構。
Dataproc on Compute Engine:
支援提交不同類型的 Spark 工作,以及以其他開放原始碼元件為基礎的工作,例如 Flink、Hadoop、Hive、Pig、Presto 等。
不建立及管理基礎架構。您建立及管理 Dataproc 叢集。
我可以如何使用 Dataproc Serverless for Spark?
使用 Spark 串流程式庫執行串流工作。注意:串流不是代管服務,因此您必須管理檢查點和重新啟動。
使用 Spark MLlib 訓練模型。
使用互動式 SQL 筆記本進行資料探索、圖表、時間序列和地理空間分析。
使用 Cloud Composer (受管理的 Apache Airflow 服務) 自動化調度管理 Dataproc Serverless for Spark 工作負載。
如何設定工作負載執行計畫?
您可以同時或依序執行工作負載。執行計畫會影響您的 Google Cloud 資源配額。您可以並行執行批次資源配額允許的任何工作負載。
我可以使用自訂映像檔搭配 Dataproc Serverless for Spark 嗎?
- 可以,您可以使用自訂容器映像檔,而非預設容器映像檔。請參閱「使用 Dataproc Serverless for Spark 搭配自訂容器」。
我可以為 Dataproc 無伺服器 Spark 工作負載指定記憶體和磁碟資源嗎?
可以,您可以指定高級執行緒和驅動程式運算和磁碟層級,以及要分配的驅動程式和執行緒運算和磁碟資源數量 (請參閱「資源分配屬性」)。
如何為 Dataproc Serverless VPC 網路指定 IP 位址範圍?
在您的環境中執行 Dataproc Serverless for Spark 工作負載。在無伺服器 Spark 工作負載中,每個 Spark 驅動程式和 Spark 執行程式都會在 Dataproc Serverless VPC 網路中使用一個內部 IP 位址。/16
是 Dataproc Serverless VPC 網路的典型使用者指定 CIDR 位址範圍。您可以根據要執行的並行工作負載數量,限制網路的 IP 位址範圍。
無伺服器型 Dataproc 是否支援資料落地?
可以,您可以指定工作負載的處理區域。在指定區域中找出輸入和輸出資料集。
Dataproc Serverless 如何在您指定的地區中選取區域來執行工作負載?
Dataproc Serverless 會根據容量和可用性,選取執行工作負載的 Compute Engine 區域。如果工作負載啟動後某個區域無法使用,工作負載就會失敗,您必須重新提交失敗的工作負載。
Dataproc Serverless 工作負載如何使用運算資源?
每項工作負載都會在自己的運算資源上執行。多個批次提交作業不會共用或重複使用運算資源。
Best Practices:
請針對執行時間適中的作業進行工作負載最佳化,而非執行時間較短的作業。
在 Cloud Storage 中持久化多個工作負載存取的資料。
哪裡可以找到 Dataproc Serverless 的公告、功能、錯誤修正、已知問題和淘汰資訊?
並行工作負載是否會爭奪資源?
只有在資源配額不足以執行所有同時執行的工作負載時,Dataproc Serverless 工作負載才會競爭資源。否則,工作負載彼此間會完全隔離。
Dataproc Serverless 配額如何分配?
Dataproc Serverless 批次會消耗 Google Cloud 資源。詳情請參閱「Dataproc Serverless 配額」一文。
我需要設定 Dataproc 永久記錄伺服器嗎?
您可以視需要設定 永久記錄伺服器 (PHS),以便搭配 Dataproc Serverless 使用。您可以使用 PHS 查看指定 Cloud Storage 值區中的 Spark 事件和其他記錄,直到標準 Dataproc Serverless 暫存和暫時值區 90 天的保留期限 (TTL) 結束為止。
有哪些 Dataproc Serverless Spark 記錄可供使用?
在 Spark 工作負載執行期間和執行後,Cloud Logging 會提供 Spark 執行緒和驅動程式記錄。此外,在工作負載執行期間,您可以在 Persistent History Server (PHS) 網頁介面中查看 Spark 應用程式 (在 PHS UI 中選取 PHS > Incomplete Applications)。
如果您設定 Dataproc PHS,則可持續存取儲存在 Cloud Storage 中的 Spark 事件記錄,進而深入瞭解 Spark 應用程式的執行情形,例如 DAG 和執行緒事件。
我可以為 Spark 工作負載設定執行緒嗎?
可以,您可以使用 spark.executor.instances
屬性,設定 Spark 工作負載的執行緒數。不過,工作負載可使用的核心總數比執行緒數更重要,因為 Spark 會在每個核心上執行 1 項工作。舉例來說,如果工作負載有四個執行緒,且每個執行緒有兩個核心,則會同時執行 4 * 2 = 8
工作。對於工作負載,它也會執行相同數量的執行緒,每個執行緒有四個核心。由於每項工作負載的核心數量相同,因此會執行相同數量的任務。您可以使用 spark.executor.cores
屬性,為 Dataproc Serverless 工作負載設定每個執行緒的核心數量。
Dataproc Serverless 會使用哪些 Spark 指標進行自動調整?
Dataproc Serverless for Spark 會查看 maximum-needed
和 running
Spark 的動態分配指標,判斷是否要擴大或縮小規模。請參閱「Dataproc Serverless for Spark 自動調整大小」一文。
我可以使用 Spark 屬性設定 Dataproc Serverless 的自動調度資源行為嗎?
可以,Dataproc Serverless 自動調度資源功能是根據 Spark 動態分配功能,預設為啟用狀態。您可以調整下列 Spark 屬性和 Spark 動態分配屬性:
spark.executor.instances
spark.dynamicAllocation.initialExecutors
spark.dynamicAllocation.minExecutors
spark.dynamicAllocation.maxExecutors
為什麼我需要將程式碼封裝在 JAR 檔案中,才能提交 Spark 工作負載?
Spark 是以 Scala 編寫,這表示驅動程式和工作站程式都會以 JVM 程序運作。在 JVM 語言中,JAR 檔案是封裝程式碼的主要方式。提交工作負載時,您會將 JAR 檔案傳遞至 Dataproc Serverless。