Dataproc Hub 是自訂的 JupyterHub 伺服器。管理員可設定及建立 Dataproc Hub 執行個體,產生單一使用者 Dataproc 叢集,用於代管 Jupyter 和 JupyterLab 筆記本環境 (請參閱「使用 Dataproc Hub」)。
為多位使用者啟動 Notebooks。您可以建立啟用 Dataproc 的 Vertex AI Workbench 執行個體,或在 VM 上安裝 Dataproc JupyterLab 外掛程式,為多位使用者提供筆記本服務。
定義叢集設定
Dataproc Hub 執行個體會根據 YAML 叢集設定檔中的設定值建立叢集。
叢集設定可以指定 Dataproc 叢集可用的任何功能或元件 (例如機型、初始化動作和選用元件)。叢集映像檔版本必須為 1.4.13 以上。如果嘗試使用低於 1.4.13 的映像檔版本產生叢集,系統會發生錯誤並失敗。
叢集設定檔的 YAML 範例
clusterName: cluster-name config: softwareConfig: imageVersion: 2.2-ubuntu22 optionalComponents: - JUPYTER
每項設定都必須儲存在 Cloud Storage。 您可以建立及儲存多個設定檔,讓使用者在使用 Dataproc Hub 建立 Dataproc 叢集筆記本環境時,可以選擇要使用的設定檔。
建立 YAML 叢集設定檔的方式有兩種:
從控制台建立 YAML 叢集設定檔
- 在 Google Cloud 控制台中開啟「建立叢集」頁面,然後選取並填寫欄位,指定 Dataproc Hub 為使用者產生的叢集類型。
- 在左側面板底部選取「Equivalent REST」。
- 複製產生的 JSON 區塊 (不含開頭的 POST 要求行),然後將 JSON 區塊貼到線上 JSON 轉 YAML 轉換器 (在線上搜尋「Convert JSON to YAML」)。
- 將轉換後的 YAML 複製到本機 cluster-config-filename.yaml 檔案。
從現有叢集匯出 YAML 叢集設定檔
- 建立符合需求的叢集。
- 將叢集設定匯出至本機 cluster-config-filename.yaml 檔案。
gcloud dataproc clusters export cluster-name \ --destination cluster-config-filename.yaml \ --region region
將 YAML 設定檔儲存在 Cloud Storage 中
將本機 YAML 叢集設定檔複製到 Cloud Storage 值區。
gcloud storage cp cluster-config-filename.yaml gs://bucket-name/
設定 Dataproc Hub 執行個體環境變數
管理員可以設定下表列出的 Hub 環境變數,為 Hub 使用者產生的 Dataproc 叢集設定屬性。
變數 | 說明 | 範例 |
---|---|---|
NOTEBOOKS_LOCATION | 包含使用者筆記本的 Cloud Storage bucket 或 bucket 資料夾。`gs://` 前置字串為選用項目。預設:Dataproc 暫存 bucket。 | gs://bucket-name/ |
DATAPROC_CONFIGS | 導向 YAML 叢集設定檔的 Cloud Storage 路徑字串清單 (以半形逗號分隔)。`gs://`
前置字元為選用項目。 預設值: gs://dataproc-spawner-dist/example-configs/ 。其中包含預先定義的 example-cluster.yaml 和 example-single-node.yaml 。
|
gs://cluster-config-filename.yaml |
DATAPROC_LOCATIONS_LIST | Dataproc Hub 執行個體所在區域的可用區尾碼。使用者可以選取其中一個區域,做為要產生 Dataproc 叢集的區域。預設值:「b」。 | b,c,d |
DATAPROC_DEFAULT_SUBNET | Dataproc Hub 執行個體生成 Dataproc 叢集時所在的子網路。預設值:Dataproc Hub 執行個體子網路。 | https://www.googleapis.com/compute/v1/projects/project-id/regions/region/subnetworks/subnet-name |
DATAPROC_SERVICE_ACCOUNT | Dataproc VM 執行的服務帳戶。預設:如未設定,系統會使用預設的 Dataproc 服務帳戶。 | service-account@project-id.iam.gserviceaccount.com |
SPAWNER_DEFAULT_URL | 根據預設,要在已生成的 Dataproc 叢集上顯示 Jupyter 還是 JupyterLab UI。預設值:「/lab」。 | `/` 或 `/lab`,分別適用於 Jupyter 或 JupyterLab。 |
DATAPROC_ALLOW_CUSTOM_CLUSTERS | 是否允許使用者自訂 Dataproc 叢集。 預設值:false。 | 「true」或「false」 |
DATAPROC_MACHINE_TYPES_LIST | 如果啟用叢集自訂功能 (DATAPROC_ALLOW_CUSTOM_CLUSTERS),這份清單會列出允許使用者為生成的 Dataproc 叢集選擇哪些機型。預設值:空白 (允許所有機器類型)。 | n1-standard-4,n1-standard-8,e2-standard-4,n1-highcpu-4 |
NOTEBOOKS_EXAMPLES_LOCATION | 導向筆記本值區或值區資料夾的 Cloud Storage 路徑;叢集啟動時,上述值區和資料夾會下載至已生成的 Dataproc 叢集。預設值:空白。 | gs://bucket-name/ |
設定 Hub 環境變數
設定 Hub 環境變數的方法有兩種:
從控制台設定 Hub 環境變數
在 Google Cloud 控制台的「Dataproc」→「Workbench」頁面中,從「User-Managed Notebooks」分頁建立 Dataproc Hub 執行個體時,您可以按一下「Populate」按鈕,開啟「Populate Dataproc Hub」表單,設定每個環境變數。
在文字檔中設定 Hub 環境變數
建立檔案。您可以使用文字編輯器,在本機檔案中設定 Dataproc Hub 執行個體環境變數。或者,您也可以填入預留位置值,並變更或新增變數及其值,然後執行下列指令來建立檔案。
cat <<EOF > environment-variables-file DATAPROC_CONFIGS=gs://bucket/cluster-config-filename.yaml NOTEBOOKS_LOCATION=gs://bucket/notebooks DATAPROC_LOCATIONS_LIST=b,c EOF
將檔案儲存到 Cloud Storage。將本機 Dataproc Hub 執行個體環境變數檔案複製到 Cloud Storage 值區。
gcloud storage cp environment-variable-filename gs://bucket-name/folder-name/
設定 Identity and Access Management (IAM) 角色
Dataproc Hub 包含下列身分,並具備下列功能:
- 管理員:建立 Dataproc Hub 執行個體
- 資料和機器學習使用者:存取 Dataproc Hub UI
- Dataproc Hub 服務帳戶:代表 Dataproc Hub
- Dataproc 服務帳戶:代表 Dataproc Hub 建立的 Dataproc 叢集。
每個身分都需要特定角色或權限,才能執行相關聯的工作。下表摘要列出各身分所需的 IAM 角色和權限。
身分識別 | 類型 | 角色或權限 |
---|---|---|
Dataproc Hub 管理員 | 使用者或服務帳戶 | roles/notebooks.admin |
Dataproc Hub 使用者 | 使用者 | notebooks.instances.use, dataproc.clusters.use |
Dataproc Hub | 服務帳戶 | roles/dataproc.hubAgent |
Dataproc | 服務帳戶 | roles/dataproc.worker |
建立 Dataproc Hub 執行個體
事前準備:如要透過 Google Cloud 控制台建立 Dataproc Hub 執行個體,使用者帳戶必須具備
compute.instances.create
權限。此外,執行個體的服務帳戶 (Compute Engine 預設服務帳戶,或您在「IAM 與管理」>「服務帳戶」中列出的使用者指定服務帳戶,請參閱「Dataproc VM 服務帳戶」) 必須具備iam.serviceAccounts.actAs
權限。前往 Google Cloud 控制台的「Dataproc」→「Workbench」頁面,然後選取「使用者自行管理的筆記本」分頁標籤。
如果系統未預先選取「環境:Dataproc Hub」做為篩選器,請點選「篩選器」方塊,然後選取「環境:Dataproc Hub」。
按一下「New Notebook」(新增筆記本)→「Dataproc Hub」。
在「Create a user-managed notebook」(建立由使用者管理的筆記本) 頁面中,提供下列資訊:
- 筆記本名稱:Dataproc Hub 執行個體名稱。
- 「Region」(區域):選取 Dataproc Hub 執行個體的區域。這個 Dataproc Hub 執行個體生成的 Dataproc 叢集也會在這個區域中建立。
- 「Zone」(區域):在所選區域中,選擇一個區域。
- 環境:
Environment
:選取Dataproc Hub
。Select a script to run after creation
(選用):您可以插入或瀏覽並選取初始化動作指令碼或執行檔,在產生的 Dataproc 叢集上執行。Populate Dataproc Hub (optional)
:按一下「填入」Populate,開啟表單,即可設定每個 Hub 環境變數 (如需各變數的說明,請參閱「設定 Dataproc Hub 執行個體環境變數」)。對於任何未設定的環境變數,Dataproc 會使用預設值。或者,您也可以設定「中繼資料」key:value
配對來設定環境變數 (請參閱下一個項目)。Metadata
:- 如果您已建立包含中心環境變數設定的文字檔 (請參閱「設定中心環境變數」),請提供檔案名稱做為
key
,並提供檔案的gs://bucket-name/folder-name/environment-variable-filename
Cloud Storage 位置做為value
。對於任何未設定的環境變數,Dataproc 會使用預設值。
- 如果您已建立包含中心環境變數設定的文字檔 (請參閱「設定中心環境變數」),請提供檔案名稱做為
- 機器設定:
Machine Type
:選取 Compute Engine 機器類型。- 設定其他機器設定選項。
- 其他選項:
- 您可以展開「磁碟」、「網路」、「權限」、「安全性」和「環境升級與系統健康狀態」區段,然後設定或取代預設值。
- 按一下「建立」,啟動 Dataproc Hub 執行個體。
建立 Dataproc Hub 執行個體後,系統會啟用「Open JupyterLab」連結。使用者點選這個連結,即可開啟 JupyterHub 伺服器頁面,設定及建立 Dataproc JupyterLab 叢集 (請參閱「使用 Dataproc Hub」)。