建立 Dataproc Metastore 服務

本頁說明如何建立 Dataproc Metastore 服務。

建立 Dataproc Metastore 服務後,您可以匯入中繼資料,並連線至下列任一服務:

連線至其中一項服務後,系統會在查詢執行期間,將您的 Dataproc Metastore 服務做為 Hive 中繼存放區。

事前準備

必要的角色

如要取得建立 Dataproc Metastore 所需的權限,請要求管理員根據最低權限原則,授予您專案的下列 IAM 角色:

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

這個預先定義的角色具備 metastore.services.create 權限,這是建立 Dataproc Metastore 的必要權限。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

如要進一步瞭解 Dataproc Metastore 的特定角色和權限,請參閱「使用身分與存取權管理功能控管存取權」一文。

使用預設設定建立 Dataproc Metastore

使用預設設定建立 Dataproc Metastore 時,系統會為服務設定企業級層級、中型執行個體大小、最新版 Hive Metastore、Thrift 端點,以及 us-central1 的資料位置。

Dataproc Metastore 2

下列操作說明會示範如何使用 Thrift 端點和其他預設設定,建立 Dataproc Metastore 2。

控制台

  1. 在 Google Cloud 控制台中,前往「Dataproc Metastore」頁面。

    前往 Dataproc Metastore

  2. 在導覽列中,按一下「+ 建立」

    「建立 Metastore 服務」對話方塊隨即開啟

  3. 選取「Dataproc Metastore 2」

  4. 在「Pricing and Capacity」(價格和容量) 區段中,選擇執行個體大小。

    詳情請參閱定價方案和資源調度設定

  5. 在「Service name」(服務名稱) 欄位中,輸入服務的專屬名稱。

    如要瞭解命名慣例,請參閱資源命名慣例

  6. 選取「資料位置」

    如要進一步瞭解如何選取適當的地區,請參閱「可用地區和區域」和「地區端點」。

  7. 其餘服務設定選項請使用系統提供的預設值。

  8. 如要建立並啟動服務,請按一下「Submit」(提交)

    新的 Metastore 服務會顯示在「Dataproc Metastore」頁面。服務準備就緒前,狀態會顯示為「建立中」。 準備就緒後,狀態會變更為「有效」。 佈建服務可能需要幾分鐘的時間。

gcloud CLI

如要使用提供的預設值建立 Dataproc Metastore metastore 服務 2,請執行下列 gcloud metastore services create 指令:

gcloud metastore services create SERVICE \
  --location=LOCATION \
  --instance-size=INSTANCE_SIZE \
  --scaling-factor=SCALING_FACTOR

更改下列內容:

  • SERVICE:新 Dataproc Metastore 服務的名稱。
  • LOCATION:要在其中建立 Dataproc Metastore 的 Google Cloud 區域。你也可以設定預設位置

    如要瞭解命名慣例,請參閱資源命名慣例

  • INSTANCE_SIZE:多區域 Dataproc Metastore 的執行個體大小。例如 smallmediumlarge。如果為 INSTANCE_SIZE 指定值,請勿為 SCALING_FACTOR 指定值。

  • SCALING_FACTOR:Dataproc Metastore 服務的縮放比例。例如:0.1。 如果為 SCALING_FACTOR 指定值,請勿為 INSTANCE_SIZE 指定值。

REST

按照 API 操作說明,使用 APIs Explorer 建立服務

Dataproc Metastore 1

下列操作說明會示範如何使用 Thrift 端點和其他預設設定,建立 Dataproc Metastore 1。

控制台

  1. 在 Google Cloud 控制台中,前往「Dataproc Metastore」頁面。

    前往 Dataproc Metastore

  2. 在導覽列中,按一下「+ 建立」

    「建立 Metastore 服務」對話方塊隨即開啟

  3. 選取「Dataproc Metastore 1」

  4. 在「Service name」(服務名稱) 欄位中,輸入服務的專屬名稱。

    如要瞭解命名慣例,請參閱資源命名慣例

  5. 選取「資料位置」

    如要進一步瞭解如何選取適當的地區,請參閱「可用地區和區域」和「地區端點」。

  6. 其餘服務設定選項請使用系統提供的預設值。

  7. 如要建立並啟動服務,請按一下「Submit」(提交)

    新的 Metastore 服務會顯示在「Dataproc Metastore」頁面。服務準備就緒前,狀態會顯示為「建立中」。 準備就緒後,狀態會變更為「有效」。 佈建服務可能需要幾分鐘。

gcloud CLI

如要使用提供的預設值建立基本中繼資料存放區服務,請執行下列 gcloud metastore services create 指令:

gcloud metastore services create SERVICE \
  --location=LOCATION

更改下列內容:

  • SERVICE:新 Dataproc Metastore 服務的名稱。
  • LOCATION:要在其中建立 Dataproc Metastore 的 Google Cloud 區域。你也可以設定預設位置

    如要瞭解命名慣例,請參閱資源命名慣例

REST

按照 API 操作說明,使用 API Explorer 建立服務

使用進階設定建立 Dataproc Metastore

「使用進階設定建立 Dataproc Metastore」一文說明如何修改網路設定、擴縮設定、端點設定、安全性設定和選用功能等設定。

Dataproc Metastore 2 或 1

以下操作說明將示範如何使用進階設定,建立 Dataproc Metastore 2 或 Dataproc Metastore 1 服務。

控制台

開始使用

  1. 在 Google Cloud 控制台中,開啟「Dataproc Metastore」頁面:

    開啟 Dataproc Metastore

  2. 在導覽選單中,按一下「+ 建立」

    「建立 Metastore 服務」對話方塊隨即開啟

  3. 選取要使用的 Metastore 版本,Dataproc Metastore 1Dataproc Metastore 2

    服務資訊

    建立服務頁面
    「建立服務」頁面範例

    1. (選用):如果是 Dataproc Metastore 2,在「價格和容量」部分,選擇執行個體大小。

      詳情請參閱定價方案和資源調度設定

    2. 在「Service name」(服務名稱) 欄位中,輸入服務的專屬名稱。

      如要瞭解命名慣例,請參閱資源命名慣例

    3. 選取「資料位置」

      如要進一步瞭解如何選取適當的地區,請參閱「可用地區和區域」和「地區端點」。

    4. 選取 Hive 中繼存放區版本

      如未修改這個值,服務會使用最新支援的 Hive 版本 (目前為 3.1.2 版)。

      如要進一步瞭解如何選取正確版本,請參閱「版本政策」。

    5. 選取「發布版本」

      如果未修改這個值,中繼存放區會使用 Stable 值。 詳情請參閱「發布管道」。

    6. 輸入 TCP 通訊埠

      Thrift 端點連線的 TCP 連接埠。如果未修改這個值,系統會使用通訊埠號碼 9083。如果將端點變更為 gRPC,這個值會自動變更為 443,且無法變更。

    7. (選用) 適用於 Dataproc Metastore 1。選取「服務層級」

      服務層級會影響服務容量。 詳情請參閱「服務層級」。

    端點通訊協定

    • 選用:選擇端點通訊協定。

      預設選取的選項是 Apache Thrift。如要進一步瞭解不同端點,請參閱「選擇端點通訊協定」。

    網路設定

    1. 選取「網路設定」

      根據預設,您的服務只會公開在一個 VPC 網路中,並使用 default 網路。default 網路只允許服務連線至同一專案中的其他服務。

      將網路設定從預設值改為完成下列動作:

      • 將 Dataproc Metastore 服務連線至其他專案中的 Dataproc Metastore 服務。
      • 將 Dataproc Metastore 服務與其他Google Cloud 服務 (例如 Dataproc 叢集) 搭配使用。
    2. 選用:按一下「使用共用虛擬私有雲網路」,然後輸入「專案 ID」和「虛擬私有雲網路名稱」

    3. 選用:按一下「在多個虛擬私有雲子網路中提供服務」,然後選取子網路。最多可指定五個子網路。

    4. 按一下 [完成]

    中繼資料整合

    維護期間

    • 選用:選取維護時段的「星期幾」和「一天中的時段」

      詳情請參閱「維護期間」。

    安全性

    1. 選用:啟用 Kerberos。

      1. 如要啟用 Kerberos,請點選切換鈕。
      2. 選取或輸入密鑰資源 ID。
      3. 您可以選擇使用最新版本的密鑰,或選取舊版密鑰。
      4. 輸入 Kerberos 主體

        這是為這項 Dataproc Metastore 服務分配的主體。

      5. 瀏覽至 krb5 設定檔。

    2. 選用:選擇加密類型。

      • 預設選取的選項為 Google-managed encryption key

      • 如要選取客戶管理的金鑰,請按一下「使用客戶管理的加密金鑰 (CMEK)」

        詳情請參閱「使用客戶管理的加密金鑰」。

    中繼儲存庫設定覆寫

    • 選用:如要將對應關係套用至 Hive Metastore,請按一下「+ 新增覆寫」

    輔助版本設定

    • 選用:如要新增輔助版本設定,請按一下「啟用」

      詳情請參閱「輔助版本」。

    資料庫類型

    • 選用:選擇資料庫類型。

      在「資料庫類型」中,選取「MySQL」或「Spanner」。MySQL 是預設資料庫類型。

      如要進一步瞭解如何選擇特定資料庫類型,請參閱「資料庫類型」。

    標籤

    • 選用:如要新增或移除描述中繼資料的選用標籤,請按一下「+ 新增標籤」

啟動服務

如要建立並啟動服務,請按一下「Submit」(提交)

新的 Metastore 服務會顯示在「Dataproc Metastore」頁面。服務準備就緒前,狀態會顯示為「建立中」。 準備就緒後,狀態會變更為「有效」。 佈建服務可能需要幾分鐘的時間。

gcloud CLI

  1. 如要建立中繼存放區,請執行下列 gcloud metastore services create 指令:

    gcloud metastore services create SERVICE \
      --location=LOCATION \
      --instance-size=INSTANCE_SIZE \
      --scaling-factor=SCALING_FACTOR \
      --port=PORT \
      --tier=TIER \
      --endpoint-protocol=ENDPOINT_PROTOCOL \
      --database-type=DATABASE_TYPE \
      --hive-metastore-version=HIVE_METASTORE_VERSION \
      --data-catalog-sync=DATA_CATALOG_SYNC \
      --release-channel=RELEASE_CHANNEL \
      --hive-metastore-configs=METADATA_OVERRIDE \
      --labels=LABELS \
      --auxiliary-versions=AUXILIARY_VERSION \
      --network=NETWORK \
      --consumer-subnetworks="projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET1, projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET2" \
      --kerberos-principal=KERBEROS_PRINCIPAL \
      --krb5-config=KRB5_CONFIG \
      --keytab=CLOUD_SECRET \
      --encryption-kms-key=KMS_KEY

    更改下列內容:

    服務設定

    • SERVICE:新 Dataproc Metastore 服務的名稱。
    • LOCATION:要在其中建立 Dataproc Metastore 的 Google Cloud 區域。你也可以設定預設位置
    • PORT:選用:Thrift 端點使用的 TCP 通訊埠。如未設定,系統會使用通訊埠 9083。 如果選擇使用 gRPC 端點,通訊埠編號會自動變更為 443
    • TIERDataproc Metastore 1 的選用項目:新服務的服務層級。如未設定,系統會使用 Developer 值。
    • ENDPOINT_PROTOCOL: 選用:為服務選擇端點通訊協定
    • DATABASE_TYPE: 選用:為服務選擇資料庫類型。 如要進一步瞭解如何選擇特定資料庫類型,請參閱「資料庫類型」。
    • DATA_CATALOG_SYNC:選用:啟用「Data Catalog 同步處理」功能。
    • HIVE_METASTORE_VERSION:選用:要與服務搭配使用的 Hive Metastore 版本。例如:3.1.2。如未設定,系統會使用最新版本的 Hive。
    • RELEASE_CHANNEL:選用:服務的發布版本。如未設定,系統會使用 Stable 值。
    • METADATA_OVERRIDE:選用:要套用至服務的 Hive Metastore 覆寫設定。請使用以半形逗號分隔的清單,格式如下:k1=v1,k2=v2,k3=v3
    • LABELS:選用:要新增至服務的其他中繼資料的鍵/值組合。請使用以半形逗號分隔的清單,格式如下:k1=v1,k2=v2,k3=v3。Dataproc Metastore
    • AUXILIARY_VERSION:選用:啟用輔助版本。詳情請參閱「輔助版本」。

    資源調度設定

    • INSTANCE_SIZE:Dataproc Metastore 2 的選用項目:多區域 Dataproc Metastore 的執行個體大小。例如 smallmediumlarge。如果為 INSTANCE_SIZE 指定值,請勿為 SCALING_FACTOR 指定值。
    • SCALING_FACTOR:Dataproc Metastore 2 的選用項目:Dataproc Metastore 服務的縮放比例。例如 0.1。如果為 SCALING_FACTOR 指定值,請勿為 INSTANCE_SIZE 指定值

    網路設定

    • NETWORK:您要連線至服務的虛擬私有雲網路名稱。如未設定,系統會使用 default 值。

      如果您使用的虛擬私有雲網路不屬於您的服務,則必須提供完整的相對資源名稱。例如 projects/HOST_PROJECT/global/networks/NETWORK_ID

    • SUBNET1SUBNET2: 選用:可存取您服務的子網路清單。您可以使用子網路的 ID、完整網址或相對名稱。最多可指定 5 個子網路。

    Kerberos 設定

    • KERBEROS_PRINCIPAL:選用:同時存在於 Keytab 和 KDC 中的 Kerberos 主體。典型的主體會採用「primary/instance@REALM」的格式,但並非確切格式要求。
    • KRB5_CONFIG:選用。krb5.config 檔案會指定 KDC 和 Kerberos 領域資訊,包括 KDC 的位置,以及領域和 Kerberos 應用程式的預設值。
    • CLOUD_SECRET:選用:Secret Manager Secret 版本的相對資源名稱。
    • KMS_KEY:(選填) 指的是金鑰資源 ID。
  2. 確認建立作業是否成功。

REST

按照 API 操作說明,使用 API Explorer 建立服務

為 Dataproc Metastore 設定 Hive 中繼存放區設定覆寫

如果 Apache Hive 倉庫目錄位於 Cloud Storage,您應設定中繼存放區設定覆寫。這項覆寫作業會將自訂資料倉儲設為 Dataproc Metastore 服務的預設倉儲目錄。

設定這項覆寫前,請確認 Dataproc Metastore 服務具備物件讀取和寫入權限,可存取倉庫目錄。詳情請參閱「Hive 倉庫目錄」。

下列操作說明會示範如何為新的 Dataproc Metastore 服務設定 Hive Metastore 設定覆寫。

控制台

  1. 在 Google Cloud 控制台中,開啟「Dataproc Metastore」頁面:

    開啟 Dataproc Metastore

  2. 在導覽列中,按一下「+ 建立」

  3. 在「Metastore config overrides」(中繼存放區設定覆寫) 中,輸入下列值:

    • 金鑰hive.metastore.warehouse.dir
    • :倉庫目錄的 Cloud Storage 位置。 例如:gs://my-bucket/path/to/location
  4. 視需要設定其餘服務選項,或使用提供的預設值。

  5. 按一下「提交」

    返回「Dataproc Metastore」頁面,確認服務是否已成功建立。

gcloud CLI

  1. 如要建立具有 Hive 覆寫的 Dataproc Metastore 服務,請執行下列 gcloud metastore services create 指令:

    gcloud metastore services create SERVICE \
      --location=LOCATION \
      --hive-metastore-configs="hive.metastore.warehouse.dir=CUSTOMER_DIR"
    

    更改下列內容:

    • SERVICE:新 Dataproc Metastore 服務的名稱。
    • LOCATION:要在其中建立 Dataproc Metastore 的 Google Cloud 區域。你也可以設定預設位置
    • CUSTOMER_DIR:倉庫目錄的 Cloud Storage 位置。例如:gs://my-bucket/path/to/location
  2. 確認建立作業是否成功。

建立具有自動調度資源功能的 Dataproc Metastore

Dataproc Metastore 2 支援自動調度資源。如果開啟自動調度資源功能,可以設定最小和最大縮放比例係數。設定完成後,服務會自動增加或減少執行工作負載所需的縮放比例。

自動調度資源注意事項

  • 自動調整資源配置和縮放比例係數是互斥選項。舉例來說,如果開啟自動調整資源配置,就無法手動設定縮放比例或大小。
  • 自動調度資源功能僅適用於單一區域的 Dataproc Metastore 執行個體。
  • 啟用自動調度資源功能後,系統會清除現有的縮放比例設定。
  • 停用自動調度資源功能時:
    • 系統會清除現有的自動調度資源設定。
    • 縮放比例會設為服務上最後設定的 autoscaling_factor
  • 自動調度係數的最小值和最大值為選填欄位。如未設定,預設值分別為 0.16

選擇下列任一分頁標籤,瞭解如何建立已啟用自動調度資源的 Dataproc Metastore 服務 2。

控制台

  1. 在 Google Cloud 控制台中,前往「Dataproc Metastore」頁面。

    前往 Dataproc Metastore

  2. 在導覽列中,按一下「+ 建立」

    「建立 Metastore 服務」對話方塊隨即開啟

  3. 選取「Dataproc Metastore 2」

  4. 在「定價和容量」部分中,選取「Enterprise - Single region」(Enterprise - 單一區域)

  5. 在「執行個體大小」下方,按一下「啟用自動調度資源」

  6. 在「執行個體大小」下方,使用滑桿選擇執行個體大小下限和上限。

  7. 如要建立並啟動服務,請按一下「Submit」(提交)

    新的 Metastore 服務會顯示在「Dataproc Metastore」頁面。服務準備就緒前,狀態會顯示為「建立中」。 準備就緒後,狀態會變更為「有效」。 佈建服務可能需要幾分鐘的時間。

REST

curl -X POST -s -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"scaling_config":{"autoscaling_config":{"autoscaling_enabled": true,"limit_config":{"max_scaling_factor":MAX_SCALING_FACTOR,"min_scaling_factor": MIN_SCALING_FACTOR}}}}' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/services?service_id=SERVICE_ID

更改下列內容:

  • MIN_INSTANCES 選用:自動調度資源設定中使用的執行個體數量下限。如未指定這些值,系統會使用預設值 0.1
  • MAX_INSTANCES選用:自動調度資源設定中使用的執行個體數量上限。如未指定這些值,系統會使用預設值 6

建立多區域 Dataproc Metastore 服務

如要建立多區域 Dataproc Metastore,請參閱「設定多區域 Dataproc Metastore 服務」。

使用共用 VPC 建立 Dataproc Metastore 服務

共用虛擬私有雲可讓您將多項專案中的 Dataproc Metastore 資源連線至共同的虛擬私有雲網路。

如要建立設定共用 VPC 的 Dataproc Metastore 服務,請參閱「使用進階設定建立服務」。

注意事項

  • 如果 Dataproc Metastore 服務設定了 gRPC 端點通訊協定,則與虛擬私有雲網路無關。

  • 如果 Dataproc Metastore 服務設定了 Thrift 端點通訊協定,請確認 Dataproc Metastore 服務和所連線的 Dataproc 叢集使用相同的共用 VPC 網路。

  • 如果 Dataproc Metastore 服務設定了 Thrift 端點通訊協定和 Private Service Connect,請務必使用共用虛擬私有雲網路的子網路。

共用虛擬私有雲網路所需的 IAM 角色

如要使用可從其他專案所屬網路存取的虛擬私有雲,建立 Dataproc Metastore 服務,您必須在網路專案的 IAM 政策中,將 roles/metastore.serviceAgent 授予服務專案的 Dataproc Metastore 服務代理程式 (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com)。

gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \
   --role "roles/metastore.serviceAgent" \
   --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com"

排解常見問題

常見問題包括:

  • 限制虛擬私有雲對等互連。建立 Metastore 前,請勿設定機構政策限制,以免虛擬私有雲對等互連受到限制,導致 Metastore 建立失敗。如要進一步瞭解如何設定正確的 VPC 設定,請參閱因限制 VPC 對等互連的限制而無法建立服務

  • 虛擬私有雲網路問題。建立 Metastore 時,您使用的虛擬私有雲網路可能沒有 Dataproc Metastore 服務所需的可用 RFC 1918 位址。如要進一步瞭解如何修正這個問題,請參閱「分配的 IP 範圍已用盡」。

後續步驟