辅助版本

本页介绍了如何将辅助版本功能与 Dataproc Metastore。

借助辅助版本,您可以将两个不同版本的 Hive Metastore 连接到单个 Dataproc Metastore 服务。通过此配置,您可以支持 需要在不同的 Hive Metastore 上运行的多个数据处理引擎 版本。

例如,使用辅助版本,您可以将多个 同一 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 Metastore 版本公开一个单独的端点。不过, 端点继续共享同一个元数据数据库。

此功能不支持 元数据和单个 Dataproc Metastore 服务。相反,它提供一种 扩展和增强服务之间的兼容性。

注意事项

常规

  • 您只能为每个 Dataproc Metastore 服务创建一个辅助版本。

  • 辅助版本必须配置为使用较低的 Hive Metastore 与主要版本相比

  • 辅助版本保留一个与主要版本不同的日志文件 版本。如需调试 Hive Metastore 问题,您可以使用 Cloud Logging

功能支持

  • 辅助版本不支持以下功能:

  • 一些 Hive 方法在辅助资源和 主要版本。此兼容性取决于您使用的 Hive 版本 主要和辅助版本所使用的 API,以及用来 Hive 版本之间的兼容性。

  • 并非 Dataproc Metastore 主实例的所有功能 (由辅助版本支持)。例如,将记录插入 连接 Hive 2 客户端时,不支持 Hive 事务表 并附加了辅助版本 2.3.6不过, 与主要版本 3.1.2 交互的 Hive 3 客户端。

    如果较低 Hive 版本中的某项功能在较高 Hive 版本中被废弃,则相应的较低辅助版本将不支持该已废弃功能。例如,Hive 2 支持 indexes,但 如果主实例或运行 Hive 2.3.6 的辅助版本不支持 运行 Hive 3.1.2。

  • 使用辅助版本创建事务表或插入任何 防止了辅助版本中事务表中的数据。

版本之间的共用属性

创建辅助版本后,辅助版本和主要版本之间会共享一些属性,这些属性会保持不变。其他属性不会共享,而是在两个版本之间分开。

下表列出了这些差异。

属性 常用 拆分
端点
Hive 配置替换项*
Kerberos 配置
端点协议 (Thrift/gRPC)
Thrift 端口
工件 Cloud Storage 存储桶
层级
维护时段
发布版本
加密配置
数据库类型
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, ...
    
    • SERVICE:您的 Dataproc Metastore 服务。
    • 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 列表 要部署的 Metastore 版本。仅支持一个辅助版本。

更新现有服务的辅助版本

以下说明介绍了如何更新现有 使用辅助版本的 Dataproc Metastore 服务。

运行更新操作时,您可以完成以下任务:

  • 添加新的辅助版本。
  • 删除现有的辅助版本。
  • 添加或修改现有辅助版本的替换项。

控制台

  1. 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:

    打开 Dataproc Metastore

  2. Dataproc Metastore 页面上,点击您要更新的服务的名称。

    服务详细信息页面会打开。

  3. 配置标签页上,点击修改

    系统随即会打开修改服务页面。

  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
    

    替换以下内容:

    • SERVICE:您的 Dataproc Metastore 服务的名称。
    • 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

替换以下内容:

  • SERVICE_ID:您的 Dataproc Metastore 服务的名称。
  • PROJECT_ID:您要创建 Dataproc Metastore 服务集群的 Google Cloud 项目 ID。
  • LOCATION:您的 Dataproc Metastore。
  • AUX_VERSIONS:以英文逗号分隔的 要部署的辅助 Hive Metastore 版本。

后续步骤