輔助版本

本頁說明如何搭配 Dataproc Metastore 使用輔助版本功能。

透過輔助版本,您可以將兩個不同版本的 Hive Metastore 連線至單一 Dataproc Metastore 服務。這項設定可讓您支援多個資料處理引擎,這些引擎需要執行不同版本的 Hive Metastore。

舉例來說,您可以使用輔助版本,將多個 Dataproc 叢集連線至同一個 Dataproc Metastore 服務。在這個設定中,一個叢集可以執行 Dataproc 2.0 版,另一個則執行 Dataproc 1.5 版。Dataproc 2.0 叢集可以連線至公開 Hive 3.1.2 版的端點,而 Dataproc 1.5 叢集則連線至公開 Hive 2.3.6 版的端點。

輔助版本的運作方式

啟用輔助版本後,Dataproc Metastore 會為每個 Hive 中繼儲存庫版本公開個別端點。不過,這兩個端點仍共用同一個中繼資料庫。

這項功能無法讓您透過單一 Dataproc Metastore 服務使用不同的中繼資料集。而是提供方法,讓您擴充及提升服務之間的相容性。

注意事項

一般

  • 每個 Dataproc Metastore 服務只能建立一個輔助版本。

  • 輔助版本必須設定為使用低於主要版本的 Hive 中繼儲存庫版本。

  • 輔助版本會維護與主要版本不同的記錄檔。如要偵錯 Hive Metastore 問題,可以使用 Cloud Logging

功能支援

  • 輔助版本不支援下列功能:

  • 輔助版本和主要版本之間可能不相容某些 Hive 方法。相容性取決於主要和輔助版本使用的 Hive 版本,以及 Hive 版本之間相容的方法。

  • 輔助版本不支援主要 Dataproc Metastore 執行個體的所有功能。舉例來說,如果 Hive 2 用戶端與輔助版本 2.3.6 介接,則不支援將記錄插入 Hive 交易資料表。不過,如果 Hive 3 用戶端與主要版本 3.1.2 介接,則支援這項作業。

    如果較高 Hive 版本已淘汰較低 Hive 版本的功能,對應的較低輔助版本就不會支援已淘汰的功能。舉例來說,Hive 2 支援索引,但如果主要版本執行 Hive 3.1.2,則執行 Hive 2.3.6 的輔助版本不會支援索引。

  • 系統會禁止使用輔助版本建立交易資料表,或在輔助版本的交易資料表中插入任何資料。

版本之間共用的屬性

建立輔助版本時,部分屬性會共用,且輔助版本和主要版本會維持相同屬性。其他屬性則不會共用,兩個版本會分別擁有這些屬性。

下表列出這些差異。

屬性 常用符號或字元 分開
端點
Hive 設定覆寫*
Kerberos 設定
端點通訊協定 (Thrift/gRPC)
Thrift 通訊埠
構件 Cloud Storage bucket
級別
維護期間
發布版本
加密設定
資料庫類型
Data Catalog 同步切換按鈕
要求計數指標
網路設定

* 輔助版本和主要版本的 Hive 設定覆寫仍會分開。不過,輔助版本會參照覆寫項的合併清單 (主要 + 輔助)。在這種情況下,輔助設定會優先於主要設定。

事前準備

必要的角色

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

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

這個預先定義的角色包含 metastore.services.create權限,這是建立使用輔助版本的 Dataproc Metastore 時的必要權限。

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

如要進一步瞭解特定 Dataproc Metastore 角色和權限,請參閱「使用 IAM 管理 Dataproc 存取權」。

為新服務建立輔助版本

以下範例顯示啟用輔助版本的步驟簡要說明。如需完整逐步操作說明,請參閱建立 Dataproc Metastore

控制台

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

    開啟 Dataproc Metastore

  2. 在「Dataproc Metastore」頁面頂端,按一下「建立」按鈕。

    「建立服務」頁面隨即開啟。

  3. 在「輔助版本設定」下方,啟用輔助版本。

  4. 按一下「新增輔助版本」

    1. 輸入輔助版本的名稱。

    2. 選取輔助版本。

    3. 選用:如要將對應套用至輔助版本,請按一下「+ 新增覆寫」

    4. 按一下 [完成]

  5. 視需要選擇服務的其餘設定

  6. 按一下「提交」

gcloud CLI

  1. 如要使用輔助版本建立 Dataproc Metastore 服務,請執行下列其中一個 gcloud metastore services create 指令:

    gcloud metastore services create SERVICE \
        --location=LOCATION \
        --auxiliary-versions=AUXILIARY_VERSIONS, ...
    
    • :Dataproc Metastore 服務的名稱。SERVICE
    • LOCATION:您要在其中建立 Dataproc Metastore 服務的區域。
    • AUXILIARY_VERSIONS:以逗號分隔的 Hive Metastore 版本清單,用於部署輔助版本。僅支援一個輔助版本。 請使用下列格式 "2.3.6"
    • AUXILIARY_VERSIONS_FROM_FILE:YAML 檔案的路徑,其中包含輔助版本設定。如需詳細資訊和範例,請參閱 SDK 說明文件
  2. 確認建立作業是否成功。

curl

如要建立具有輔助版本的 Dataproc Metastore 服務,請使用 create 方法。

查看有效帳戶。
curl -X POST -s -i \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -d '{"network":"projects/PROJECT_ID/global/networks/default", "port": 9083, "hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION"} } } }' \
     -H "Content-Type:application/json" \
     https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services?service_id=SERVICE_ID

更改下列內容:

  • SERVICE_ID:新 Dataproc Metastore 服務的名稱。
  • PROJECT_ID:您要在其中建立 Dataproc Metastore 服務的 Google Cloud 專案 ID。
  • LOCATION:Dataproc Metastore 所在的區域。
  • AUX_VERSIONS:以半形逗號分隔的 Hive 中繼存放區版本清單,用於部署。系統僅支援一個輔助版本。

更新現有服務的輔助版本

下列操作說明介紹如何更新使用輔助版本的現有 Dataproc Metastore 服務。

執行更新作業時,您可以完成下列工作:

  • 新增輔助版本。
  • 刪除現有的輔助版本。
  • 新增或修改現有輔助版本的覆寫值。

控制台

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

    開啟 Dataproc Metastore

  2. 在「Dataproc Metastore」頁面中,按一下要更新的服務名稱。

    「服務詳細資料」頁面隨即開啟。

  3. 在「Configuration」分頁中,按一下「Edit」

    「編輯服務」頁面隨即開啟。

  4. 在「輔助版本設定」部分,按一下切換鈕即可啟用或停用輔助版本。

    您可以完成下列工作:

    1. 如要刪除現有的輔助版本,請按一下「刪除」

    2. 如要新增輔助版本,請按一下「新增輔助版本」

    3. 如要將覆寫對應套用至輔助版本,請按一下「+ 新增覆寫」

  5. 按一下「提交」

gcloud CLI

  1. 如要更新使用輔助版本的 Dataproc Metastore 服務,請執行下列任一 gcloud metastore services update 指令:

    gcloud metastore services update SERVICE \
       --location=LOCATION \
       --add-auxiliary-versions=AUXILIARY_VERSIONS, ...
    

    gcloud metastore services update SERVICE \
       --location=LOCATION \
       --update-auxiliary-versions-from-file=AUXILIARY_VERSIONS_FROM_FILE
    

    更改下列內容:

    • :Dataproc Metastore 服務的名稱。SERVICE
    • LOCATION:Dataproc Metastore 所在的區域。
    • AUXILIARY_VERSIONS:以逗號分隔的輔助 Hive Metastore 版本清單,用於部署。
    • AUXILIARY_VERSIONS_FROM_FILE:YAML 檔案的路徑,內含輔助版本設定;如需更多資訊和範例,請參閱 SDK 說明文件
  2. 確認更新是否成功。

curl

如要更新使用輔助版本的 Dataproc Metastore 服務,請使用 patch 方法。

查看有效帳戶。
curl -X PATCH -s -i \
   -H "Authorization: Bearer $(gcloud auth print-access-token)" \
   -d '{"hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION} } } }' \
   -H "Content-Type:application/json" \
   https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE_ID?update_mask=hive_metastore_config.auxiliary_versions

更改下列內容:

  • :Dataproc Metastore 服務的名稱。SERVICE_ID
  • PROJECT_ID:您要在其中建立 Dataproc Metastore 服務叢集的 Google Cloud 專案 ID。
  • LOCATION:Dataproc Metastore 所在的區域。
  • AUX_VERSIONS:以逗號分隔的輔助 Hive Metastore 版本清單,用於部署。

後續步驟