本页介绍了如何为 Dataproc Metastore 创建元数据联合服务。借助联合服务,您可以访问 存储在单个 gRPC 端点的多个源中。
有关联合的工作原理及其限制的详细信息,请参阅关于 元数据联合。
准备工作
- 启用 Dataproc Metastore。
- 创建 Dataproc Metastore 服务 使用 gRPC 端点
- 可选:如果您使用 BigQuery 来源进行联合,
完成以下操作:
- 启用 BigQuery API 在包含 BigQuery 来源的项目中。
- 启用 Resource Manager API。
- 可选:如果您使用 Dataplex 数据湖作为联合来源(预览版),
完成以下操作:
- 在以下位置启用 Dataplex API: 以 Dataplex Lake 作为来源的项目。
所需的角色
如需获得创建联邦服务和附加 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 集群。
如需详细了解联合来源及其限制,请参阅元数据来源。
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:
在 Dataproc 导航菜单中,点击联合。
系统会打开联邦元数据存储服务页面。
在 Federated Metastore 菜单栏中,点击创建。
系统随即会打开创建联合服务页面。
在联盟名称字段中,为您的服务输入一个具有唯一性的名称。
如需了解详情,请参阅资源命名惯例。
选择数据位置。
请确保在您的 Dataproc Metastore 源。
选择 Hive 版本。
如需为联合服务添加来源,请点击添加来源。
您可以添加一个或多个来源。您在此 list 会自动设置为您的主要 Metastore。您可以更新 源代码排序。
在来源类型中,选择您的联合来源。
您可以选择一个 Dataproc Metastore 实例、 项目,该项目包含一个或多个 BigQuery 数据集, 或 Dataplex 数据湖(预览版)。
在 Source(来源)字段中,输入以下信息:
对于 Dataproc Metastore 服务。
在所选项目字段中,点击浏览并选择 包含 Cloud Storage 存储分区的 用作来源。
确保您的 Dataproc Metastore 来源已 使用与您的联盟兼容的 Hive 版本 服务。您的主要 Metastore 必须使用符合以下条件的 Hive 版本: 大于或等于您的联合服务。
在 Metastore 服务下拉菜单中,选择 Dataproc Metastore。
对于 BigQuery。 在所选项目字段中,点击浏览并选择 包含 BigQuery 数据集的项目的 ID。
适用于 Dataplex(预览版)。 在所选项目字段中,点击浏览并选择 包含 Dataplex Lake 的项目的 ID。
点击完成。
如需创建并启动服务,请点击提交。
您现在可以将联合服务连接到 Dataproc 集群。
更新联合服务
以下说明介绍了如何更新联合服务。您可以 完成以下任务:
- 向联合服务添加来源。
- 从联合服务中移除来源。
- 更改联合服务中包含的来源的来源排序。
永久删除联合服务。删除某项服务后 其资源会被释放
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:
在 Dataproc 导航菜单中,点击联合。
系统随即会打开联合 Metastore 服务页面。
在 Federated Metastore 服务页面上,点击 您要更新的服务名称。
服务详细信息页面会打开。
在菜单栏中,点击修改。
系统随即会打开修改服务页面。
选择要更新的值。
如需更新服务,请点击提交。
将 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。