创建元数据联合服务

本页介绍了如何为 Dataproc Metastore 创建元数据联合服务。借助联合服务,您可以访问 存储在单个 gRPC 端点的多个源中。

有关联合的工作原理及其限制的详细信息,请参阅关于 元数据联合

准备工作

所需的角色

如需获得创建联邦服务和附加 Dataproc 集群所需的权限,请遵循最小特权原则,让管理员为您授予以下 IAM 角色:

  • 如需访问联合服务,请执行以下操作: 联合访问器 (roles/metastore.federationAccessor) 针对用户账号或服务账号
  • 要授予对所有 Dataproc Metastore 资源的完全控制权,请执行以下操作: Dataproc Metastore 编辑器 (roles/metastore.editor) 针对用户账号或服务账号
  • 如需对使用联邦服务配置的 Dataproc Metastore 完成元数据操作,请执行以下操作: 用户账号或服务账号中的 Metastore 所有者 (metastore.metadataEditor)
  • 如需创建 Dataproc 集群,请执行以下操作: Dataproc 工作器 (roles/dataproc.worker) 对 Dataproc 虚拟机服务账号的启用
  • (可选)如需访问 BigQuery 数据集,请执行以下操作: 使用适合您的应用场景的相应 BigQuery 预定义角色 针对用户账号或服务账号
  • (可选)如需访问 Dataplex 数据湖(预览版),请执行以下操作: 使用适合您用例的适当 Dataplex 预定义角色 针对用户账号或服务账号

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

这些预定义角色包含 拥有创建联合服务和连接 Dataproc 集群所需的权限,遵循最小权限原则。如需查看所需的确切权限,请展开所需权限部分:

所需权限

要创建联合服务和连接 Dataproc 集群,需要以下权限才能遵循最小权限原则:

  • 如需创建 Dataproc Metastore,请执行以下操作: metastore.services.create 针对用户账号或服务账号
  • 如需列出、获取、创建、更新和删除联合服务,请执行以下操作: metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list 针对用户账号或服务账号
  • 如需在 Dataproc Metastore 上完成元数据操作,请执行以下操作: metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicy 针对用户账号或服务账号
  • (可选)如需访问 BigQuery 数据集,请执行以下操作: For more information, see BigQuery permissions 针对用户账号或服务账号
  • (可选)如需访问 Dataplex 数据湖(预览版),请执行以下操作: For more information, see Dataplex permissions 针对用户账号或服务账号

您也可以使用自定义角色或其他预定义角色来获取这些权限。

如需详细了解特定 Dataproc Metastore 角色和权限,请参阅使用 IAM 管理 Dataproc Metastore 访问权限

创建联合服务

以下说明介绍了如何创建联合服务并将其附加到来源。完成这些步骤后,您可以将您的 连接到 Dataproc 集群。

如需详细了解联合来源及其限制,请参阅元数据来源

控制台

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

    打开 Dataproc Metastore

  2. 在 Dataproc 导航菜单中,点击联合

    系统会打开联邦元数据存储服务页面。

  3. Federated Metastore 菜单栏中,点击创建

    系统随即会打开创建联合服务页面。

  4. 联盟名称字段中,为您的服务输入一个具有唯一性的名称。

    如需了解详情,请参阅资源命名惯例

  5. 选择数据位置

    请确保在您的 Dataproc Metastore 源。

  6. 选择 Hive 版本

  7. 如需为联合服务添加来源,请点击添加来源

    您可以添加一个或多个来源。您在此 list 会自动设置为您的主要 Metastore。您可以更新 源代码排序。

    1. 来源类型中,选择您的联合来源。

      您可以选择一个 Dataproc Metastore 实例、 项目,该项目包含一个或多个 BigQuery 数据集, 或 Dataplex 数据湖(预览版)。

    2. Source(来源)字段中,输入以下信息:

      • 对于 Dataproc Metastore 服务

        1. 所选项目字段中,点击浏览并选择 包含 Cloud Storage 存储分区的 用作来源。

          确保您的 Dataproc Metastore 来源已 使用与您的联盟兼容的 Hive 版本 服务。您的主要 Metastore 必须使用符合以下条件的 Hive 版本: 大于或等于您的联合服务。

        2. Metastore 服务下拉菜单中,选择 Dataproc Metastore。

      • 对于 BigQuery。 在所选项目字段中,点击浏览并选择 包含 BigQuery 数据集的项目的 ID。

      • 适用于 Dataplex预览版)。 在所选项目字段中,点击浏览并选择 包含 Dataplex Lake 的项目的 ID。

    3. 点击完成

  8. 如需创建并启动服务,请点击提交

    您现在可以将联合服务连接到 Dataproc 集群

更新联合服务

以下说明介绍了如何更新联合服务。您可以 完成以下任务:

  • 向联合服务添加来源。
  • 从联合服务中移除来源。
  • 更改联合服务中包含的来源的来源排序。
  • 永久删除联合服务。删除某项服务后 其资源会被释放

控制台

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

    打开 Dataproc Metastore

  2. 在 Dataproc 导航菜单中,点击联合

    系统随即会打开联合 Metastore 服务页面。

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

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

  4. 在菜单栏中,点击修改

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

  5. 选择要更新的值。

  6. 如需更新服务,请点击提交

将 Dataproc 集群连接到联合服务

以下说明介绍了如何创建 Dataproc 并连接联合服务端点作为其 Metastore。

在开始这些说明之前,请先完成使用前的注意事项 您可以开始并创建一个联合 服务

gcloud CLI

如需创建 Dataproc 集群并连接联合端点,请执行以下操作: 运行以下 gcloud Dataproc clusters create 命令。

 gcloud dataproc clusters create CLUSTER_NAME \
    --region=LOCATION \
    --project=PROJECT_ID \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --image-version=IMAGE_VERSION \
    --service-account=SERVICE_ACCOUNT \
    --optional-components=DOCKER \
    --initialization-actions=gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \
    --metadata="proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \
    --properties="hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"

替换以下内容:

  • CLUSTER_NAME:新 Dataproc 的名称 集群。
  • PROJECT_ID:您要管理的项目的 Google Cloud 项目 ID 创建 Dataproc 集群。
  • LOCATION:Dataproc 集群所在的区域。
  • IMAGE_VERSION:Dataproc 映像版本。

    请确保您在此代码段中使用的 Dataproc 映像 与您的联盟搭配使用的 Hive 版本兼容 服务。如需了解详情,请参阅 Dataproc 映像版本列表

  • SERVICE_ACCOUNT 可选:您用于创建 Dataproc 集群的服务账号。如果未指定,集群将使用您的默认 Compute Engine 服务 。

  • FEDERATION_URI:您的 联合服务。

  • FEDERATION_VERSION:您的 Cloud Storage 存储分区 哪些是联合服务正在使用的。

  • WAREHOUSE_DIR:您的 主 Dataproc Metastore。

后续步骤