建立支援 Spark 的 Dataproc 執行個體

本頁面說明如何建立支援 Dataproc Spark 的 Vertex AI Workbench 執行個體。本頁也說明瞭 Dataproc JupyterLab 擴充功能的好處,並概略說明如何搭配使用 Dataproc 無伺服器服務和 Compute Engine 上的 Dataproc。

Dataproc JupyterLab 擴充功能總覽

Vertex AI Workbench 執行個體已預先安裝 Dataproc JupyterLab 擴充功能 (適用於 M113 以上版本)。

Dataproc JupyterLab 外掛程式提供兩種執行 Apache Spark 筆記本工作的做法:Dataproc 叢集和 Dataproc Serverless。

  • Dataproc 叢集包含豐富的功能,可控管 Spark 執行的基礎架構。您可以選擇 Spark 叢集的大小和設定,以便自訂及控管環境。這種做法非常適合用於複雜的工作負載、長時間執行的工作,以及精細的資源管理。
  • 無伺服器型 Dataproc 可解決基礎架構問題。您提交 Spark 工作後,Google 會在幕後處理資源的佈建、調整及最佳化作業。這項無伺服器方法為資料科學和機器學習工作負載提供具成本效益的選項。

無論您選擇哪一種方法,都可以使用 Spark 處理及分析資料。您可以根據特定工作負載需求、所需的控管層級和資源使用模式,選擇 Dataproc 叢集或 Dataproc 無伺服器。

使用 Dataproc Serverless 進行資料科學和機器學習工作負載的好處包括:

  • 無需管理叢集:您不必擔心 Spark 叢集的佈建、設定或管理問題。這麼做可節省您的時間和資源。
  • 自動調度資源:Dataproc 無伺服器會根據工作負載自動調度資源,讓您只需為所用資源付費。
  • 高效能:Dataproc Serverless 可提升效能,並充分利用 Google Cloud的基礎架構。
  • 與其他 Google Cloud 技術整合:Dataproc Serverless 可與其他 Google Cloud 產品整合,例如 BigQuery 和 Dataplex 通用目錄。

詳情請參閱 Dataproc Serverless 說明文件

事前準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Cloud Resource Manager, Dataproc, and Notebooks APIs.

    Enable the APIs

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Cloud Resource Manager, Dataproc, and Notebooks APIs.

    Enable the APIs

  6. 必要的角色

    為確保服務帳戶具備在 Dataproc 無伺服器叢集或 Dataproc 叢集中執行 Notebook 檔案的必要權限,請要求管理員將下列 IAM 角色授予服務帳戶:

    如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

    這些預先定義的角色包含在 Dataproc 無伺服器叢集或 Dataproc 叢集中執行筆記本檔案所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

    所需權限

    如要在 Dataproc Serverless 叢集或 Dataproc 叢集中執行筆記本檔案,必須具備下列權限:

    • dataproc.agents.create
    • dataproc.agents.delete
    • dataproc.agents.get
    • dataproc.agents.update
    • dataproc.tasks.lease
    • dataproc.tasks.listInvalidatedLeases
    • dataproc.tasks.reportStatus
    • dataproc.clusters.use

    您的管理員也可能會透過自訂角色或其他預先定義的角色,將這些權限授予服務帳戶。

    建立已啟用 Dataproc 的執行個體

    如要建立啟用 Dataproc 的 Vertex AI Workbench 執行個體,請按照下列步驟操作:

    1. 前往 Google Cloud 控制台的「Instances」(執行個體) 頁面

      前往「Instances」(執行個體)

    2. 按一下「建立新項目」

    3. 在「New instance」對話方塊中,按一下「Advanced options」

    4. 在「Create instance」對話方塊的「Details」部分,確認已選取「Enable Dataproc Serverless Interactive Sessions」

    5. 確認「Workbench type」已設為「Instance」

    6. 在「環境」部分中,請務必使用最新版本,或版本號碼為 M113 以上的版本。

    7. 按一下 [建立]。

      Vertex AI Workbench 會建立執行個體並自動啟動。執行個體可供使用時,Vertex AI Workbench 會啟用「Open JupyterLab」(開啟 JupyterLab) 連結。

    開啟 JupyterLab

    按一下執行個體名稱旁的「Open JupyterLab」

    瀏覽器會開啟 JupyterLab「啟動器」分頁。根據預設,這份報告包含 Dataproc Serverless 筆記本Dataproc 工作和工作階段的專區。如果所選專案和區域中有可用於 Jupyter 的叢集,就會顯示「Dataproc 叢集 Notebook」專區。

    將擴充功能與 Dataproc Serverless 搭配使用

    與 Vertex AI Workbench 執行個體位於相同區域和專案的 Dataproc Serverless 執行階段範本,會顯示在 JupyterLab Launcher 分頁的 Dataproc Serverless Notebooks 部分。

    如要建立執行階段範本,請參閱「建立 Dataproc 無伺服器執行階段範本」。

    如要開啟新的無伺服器 Spark 筆記本,請按一下執行階段範本。遠端 Spark 核心大約需要一分鐘的時間才能啟動。核心啟動後,您就可以開始編寫程式碼。

    搭配 Dataproc on Compute Engine 使用擴充功能

    如果您建立了 Dataproc on Compute Engine Jupyter 叢集啟動器分頁會顯示「Dataproc 叢集 Notebook」部分。

    每個可在該地區和專案中存取的 Jupyter 就緒 Dataproc 叢集,都會顯示四個資訊卡。

    如要變更區域和專案,請按照下列步驟操作:

    1. 依序選取「設定」>「Cloud Dataproc 設定」

    2. 在「Setup Config」分頁的「Project Info」下方,變更「Project ID」和「Region」,然後按一下「Save」

      您必須重新啟動 JupyterLab,這些變更才會生效。

    3. 如要重新啟動 JupyterLab,請依序選取「File」>「Shut Down」,然後在「Vertex AI Workbench 執行個體」頁面中點選「Open JupyterLab」

    如要建立新的筆記本,請按一下資訊卡。Dataproc 叢集中的遠端核心啟動後,您就可以開始編寫程式碼,然後在叢集中執行。

    使用 gcloud CLI 和 API 管理執行個體上的 Dataproc

    本節說明如何在 Vertex AI Workbench 執行個體上管理 Dataproc。

    變更 Dataproc 叢集的區域

    Vertex AI Workbench 執行個體的預設核心 (例如 Python 和 TensorFlow) 是本機核心,會在執行個體的 VM 中執行。在支援 Dataproc Spark 的 Vertex AI Workbench 執行個體上,您的筆記本會透過遠端核心在 Dataproc 叢集中執行。遠端核心會在執行個體的 VM 外部服務上執行,讓您存取同一個專案中的任何 Dataproc 叢集。

    根據預設,Vertex AI Workbench 會使用與執行個體相同區域的 Dataproc 叢集,但只要在 Dataproc 叢集中啟用元件閘道選用 Jupyter 元件,您就可以變更 Dataproc 區域

    測試存取權

    根據預設,Vertex AI Workbench 執行個體會啟用 Dataproc JupyterLab 擴充功能。如要測試對 Dataproc 的存取權,您可以將下列 curl 要求傳送至 kernels.googleusercontent.com 網域,藉此檢查對執行個體的遠端核心存取權:

    curl --verbose -H "Authorization: Bearer $(gcloud auth print-access-token)" https://PROJECT_ID-dot-REGION.kernels.googleusercontent.com/api/kernelspecs | jq .

    如果 curl 指令失敗,請確認以下事項:

    1. DNS 項目已正確設定。

    2. 同一專案中必須有可用的叢集 (如果沒有,則需要建立一個)。

    3. 叢集已啟用元件閘道選用 Jupyter 元件

    關閉 Dataproc

    Vertex AI Workbench 執行個體的建立作業預設為啟用 Dataproc。您可以將 disable-mixer metadata 鍵設為 true,建立 Dataproc 關閉的 Vertex AI Workbench 執行個體。

    gcloud workbench instances create INSTANCE_NAME --metadata=disable-mixer=true

    啟用 Dataproc

    您可以更新中繼資料值,在已停止的 Vertex AI Workbench 執行個體上啟用 Dataproc。

    gcloud workbench instances update INSTANCE_NAME --metadata=disable-mixer=false

    使用 Terraform 管理 Dataproc

    在 Terraform 上,Vertex AI Workbench 例項的 Dataproc 會使用中繼資料欄位中的 disable-mixer 鍵進行管理。將 disable-mixer metadata 鍵設為 false,即可開啟 Dataproc。將 disable-mixer 中繼資料鍵設為 true,即可關閉 Dataproc。

    如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

    resource "google_workbench_instance" "default" {
      name     = "workbench-instance-example"
      location = "us-central1-a"
    
      gce_setup {
        machine_type = "n1-standard-1"
        vm_image {
          project = "cloud-notebooks-managed"
          family  = "workbench-instances"
        }
        metadata = {
          disable-mixer = "false"
        }
      }
    }

    疑難排解

    如要診斷及解決建立支援 Dataproc Spark 的執行個體的問題,請參閱「排解 Vertex AI Workbench 問題」。

    後續步驟