本页介绍了如何为 Dataproc Metastore 创建元数据联合服务。借助联合服务,您可以通过单个 gRPC 端点访问存储在多个来源中的元数据。
如需详细了解联合的运作方式及其限制,请参阅元数据联合简介。
准备工作
- 启用 Dataproc Metastore。
- 创建使用 gRPC 端点的 Dataproc Metastore 服务。
- 可选:如果您要使用 BigQuery 作为联合数据源,请完成以下操作:
- 在包含 BigQuery 源的项目中启用 BigQuery API。
- 启用 Resource Manager API。
- 可选:如果您将 Dataplex 数据湖用作联邦(预览版)的来源,请完成以下操作:
- 在包含 Dataplex 数据湖作为来源的项目中启用 Dataplex API。
所需的角色
如需获得创建联邦服务和附加 Dataproc 集群所需的权限,请遵循最小特权原则,让管理员为您授予以下 IAM 角色:
-
如需访问联合服务:用户账号或服务账号的 Federation accessor (
roles/metastore.federationAccessor
) -
如需授予对所有 Dataproc Metastore 资源的完全控制权,请使用用户账号或服务账号中的 Dataproc Metastore 编辑器 (
roles/metastore.editor
) -
如需对使用联邦服务配置的 Dataproc Metastore 完成元数据操作,请执行以下操作:
用户账号或服务账号中的 Metastore 所有者 (
metastore.metadataEditor
) -
如需创建 Dataproc 集群,请使用:
Dataproc 虚拟机服务账号中的 Dataproc Worker (
roles/dataproc.worker
) - (可选)如需访问 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 集群。
如需详细了解联合来源及其限制,请参阅元数据源。
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:
在 Dataproc 导航菜单中,点击联合。
系统会打开联邦 Metastore 服务页面。
在联邦元数据存储库菜单栏中,点击创建。
系统随即会打开创建联合服务页面。
在联合服务名称字段中,为您的服务输入一个唯一名称。
如需了解详情,请参阅资源命名惯例。
选择数据位置。
请确保您在与 Dataproc Metastore 源相同的区域创建联邦服务。
选择 Hive 版本。
如需为联合服务添加来源,请点击添加来源。
您可以添加一个或多个来源。您在此列表中添加的第一个来源会自动设置为您的主要元存储空间。您可以在创建后更新来源排序。
在来源类型中,选择您的联合来源。
您可以选择 Dataproc Metastore 实例、包含一个或多个 BigQuery 数据集的项目,或 Dataplex 数据湖(预览版)。
在来源字段中,输入以下信息:
对于 Dataproc Metastore 服务。
在所选项目字段中,点击浏览,然后选择包含您要用作来源的 Dataproc Metastore 的项目。
确保您的 Dataproc Metastore 来源使用的 Hive 版本与您的联邦服务兼容。主 Metastore 必须使用高于或等于您的联邦服务的 Hive 版本。
在 Metastore 服务下拉菜单中,选择要用作来源的 Dataproc Metastore。
对于 BigQuery。 在所选项目字段中,点击浏览,然后选择包含 BigQuery 数据集的项目的项目 ID。
对于 Dataplex(预览版)。 在所选项目字段中,点击浏览,然后选择包含 Dataplex Lake 的项目的项目 ID。
点击完成。
如需创建并启动该服务,请点击提交。
现在,您可以将联邦服务附加到 Dataproc 集群。
更新联邦服务
以下说明介绍了如何更新联邦服务。您可以完成以下任务:
- 向联合服务添加来源。
- 从联邦服务中移除来源。
- 更改联合服务中包含的来源的来源排序。
永久删除联邦服务。删除服务后,系统会释放其所有资源。
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:
在 Dataproc 导航菜单中,点击联合。
系统会打开联邦 Metastore 服务页面。
在联邦元数据存储服务页面上,点击要更新的服务的名称。
服务详细信息页面会打开。
在菜单栏中,点击修改。
系统随即会打开修改服务页面。
选择要更新的值。
如需更新服务,请点击提交。
将 Dataproc 集群附加到联邦服务
以下说明介绍了如何创建 Dataproc 集群并将联邦服务端点附加为其元存储空间。
在开始按照这些说明操作之前,请完成准备工作中列出的所有步骤,并创建联合服务。
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
:您要在其中创建 Dataproc 集群的项目的 Google Cloud 项目 ID。LOCATION
:Dataproc 集群所在的区域。IMAGE_VERSION
:您要使用的 Dataproc 映像版本。请确保您在此命令中使用的 Dataproc 映像与您的联邦服务所用的 Hive 版本兼容。如需了解详情,请参阅 Dataproc 映像版本列表。
SERVICE_ACCOUNT
可选:您用于创建 Dataproc 集群的服务账号。如果未指定,集群将使用您的默认 Compute Engine 服务账号。FEDERATION_URI
:您的联盟服务的端点 URI。FEDERATION_VERSION
:您的联邦服务使用的 Hive 版本。WAREHOUSE_DIR
:主要 Dataproc Metastore 的仓库目录。