Serverless for Apache Spark 常見問題

本頁面列出 Serverless for Apache Spark 常見問題與解答。 Google Cloud

在哪些情況下適合使用 Serverless for Apache Spark,而不是 Compute Engine 上的 Dataproc?

  • Serverless for Apache Spark:

    • 支援 PySpark 核心 Jupyter 筆記本中的 Spark 批次工作負載和互動式工作階段。
    • Serverless for Apache Spark 會建立及管理工作負載和互動式工作階段基礎架構。
  • Dataproc on Compute Engine:

    • 支援提交不同類型的 Spark 工作,以及以其他開放原始碼元件為基礎的工作,例如 Flink、Hadoop、Hive、Pig、Presto 等。

    • 不會建立及管理基礎架構。您可以建立及管理 Dataproc 叢集。

我可以使用 Serverless for Apache Spark 執行哪些工作?

如何設定工作負載執行計畫?

您可以並行或依序執行工作負載。執行計畫會影響資源配額。 Google Cloud 只要 批次資源配額允許,您就能平行執行多個工作負載。

我可以在 Serverless for Apache Spark 中使用自訂映像檔嗎?

我可以為 Serverless for Apache Spark Spark 工作負載指定記憶體和磁碟資源嗎?

可以。提交工作負載時,您可以指定進階執行器和驅動程式的運算與磁碟層級,以及要分配的驅動程式和執行器運算與磁碟資源量 (請參閱資源分配屬性)。

如何為 Serverless for Apache Spark 虛擬私有雲網路指定 IP 位址範圍?

Serverless for Apache Spark 工作負載會在您的環境中執行。無伺服器 Spark 工作負載中的每個 Spark 驅動程式和 Spark 執行程式,都會在無伺服器 Apache Spark 虛擬私有雲網路中耗用一個內部 IP 位址。/16 是使用者指定的典型 CIDR 位址範圍,適用於 Serverless for Apache Spark 虛擬私有雲網路。您可以根據預計執行的並行工作負載數量,限制網路的 IP 位址範圍。

Serverless for Apache Spark 是否支援資料落地?

可以。您可以指定處理工作負載的區域。 在指定區域中找出輸入和輸出資料集。

無伺服器 Apache Spark 如何在指定區域內選取可用區來執行工作負載?

Serverless for Apache Spark 會根據容量和可用性,選取執行工作負載的 Compute Engine 區域。如果工作負載啟動後,某個可用區無法使用,工作負載就會失敗,您必須重新提交失敗的工作負載。

Serverless for Apache Spark 工作負載如何使用運算資源?

每個工作負載都會在專屬的運算資源上執行。多個批次提交作業不會共用或重複使用運算資源。

Best Practices:

  • 請針對中等執行時間的工作最佳化工作負載,而非短時間執行的工作。

  • 在 Cloud Storage 中保存多個工作負載存取的資料。

哪裡可以找到 Serverless for Apache Spark 的公告、功能、錯誤修正、已知問題和淘汰項目資訊?

請參閱 Serverless for Apache Spark 版本資訊

並行工作負載是否會爭用資源?

只有在資源配額不足以同時執行所有工作負載時,無伺服器 Apache Spark 工作負載才會爭用資源。否則,工作負載之間會完全隔離。

如何分配 Serverless for Apache Spark 配額?

無伺服器 Apache Spark 批次會耗用 Google Cloud 資源。 詳情請參閱「Dataproc Serverless 配額」一文。

我需要設定 Dataproc 永久記錄伺服器嗎?

設定永久歷史記錄伺服器 (PHS),搭配使用 Serverless for Apache Spark 是選用做法。您可以使用 PHS,在標準Serverless for Apache Spark 暫存和臨時值區 90 天保留期限 (TTL) 內和之後,查看指定 Cloud Storage 值區中的 Spark 事件和其他記錄。

Serverless for Apache Spark 提供哪些 Spark 記錄?

在 Spark 工作負載執行期間和執行後,您可以在 Cloud Logging 中查看 Spark 執行器和驅動程式記錄檔。此外,工作負載執行期間,Spark 應用程式會顯示在永久記錄伺服器 (PHS) 網頁介面中 (在 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 屬性,為 Serverless for Apache Spark 工作負載設定每個執行器的核心數量。

Serverless for Apache Spark 會使用哪些 Spark 指標進行自動調度?

Serverless for Apache Spark 會查看 maximum-neededrunning Spark 的動態分配指標,判斷是否要擴大或縮減規模。請參閱「Serverless for Apache Spark 自動調度資源」。

我可以使用 Spark 屬性設定 Serverless for Apache Spark 自動調度資源行為嗎?

可以。Serverless for Apache Spark 自動調度資源功能是以 Spark 動態分配為基礎,且預設為啟用狀態。您可以調整下列 Spark 屬性Spark 動態分配屬性

  • spark.executor.instances
  • spark.dynamicAllocation.initialExecutors
  • spark.dynamicAllocation.minExecutors
  • spark.dynamicAllocation.maxExecutors

為什麼需要將程式碼封裝在 JAR 檔案中,才能提交 Spark 工作負載?

Spark 是以 Scala 編寫,因此驅動程式和工作站程序都會以 JVM 程序運作。在 JVM 語言中,JAR 檔案是封裝程式碼的主要方式。提交工作負載時,您會將 JAR 檔案傳遞至 Serverless for Apache Spark。