连接 Dataproc 集群或自行管理的集群

创建 Dataproc Metastore 服务后,您可以挂接任何 以下服务:

您关联其中某项服务后,它会使用您的 在查询执行期间将 Dataproc Metastore 服务用作其 Hive Metastore。

准备工作

所需的角色

要获取创建 Dataproc Metastore 和 Dataproc 集群所需的权限, 请让管理员授予您 以下 IAM 角色:

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

这些预定义角色包含创建 Dataproc Metastore 和 Dataproc 集群所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需创建 Dataproc Metastore 和 Dataproc 集群,您需要具备以下权限:

  • 如需创建 Dataproc Metastore,请执行以下操作: metastore.services.create 针对用户账号或服务账号
  • 如需创建 Dataproc 集群,请执行以下操作: dataproc.clusters.create 针对用户账号或服务账号
  • 如需访问 Hive 仓库目录,请执行以下操作: orgpolicy.policy.get1,resourcemanager.projects.get,resourcemanager.projects.list,storage.objects.*,storage.multipartUploads.*Dataproc 虚拟机服务账号

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

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

Dataproc 集群

Dataproc 是一项托管式 Apache Spark 和 Apache Hadoop 服务,借助该服务,您可以充分利用开源数据工具来执行批处理、查询、流式传输和机器学习。

注意事项

在创建并连接 Dataproc 集群之前, 请查看什么是端点协议 您的 Dataproc Metastore 服务用量。此协议定义了 Hive Metastore 客户端如何访问存储在 Dataproc Metastore 中的元数据。此选择还会影响您可以集成和使用的功能 您的服务

Apache Thrift

如果您使用 Apache Thrift 端点协议,请考虑使用 网络要求如下:

  • 默认情况下,您应该创建 Dataproc 集群并 Dataproc Metastore 服务。您的 Dataproc 集群还可以使用 Dataproc Metastore 服务的网络。

  • 如果您的 Dataproc 集群不属于 必须配置共享网络权限

  • 如果您的 Dataproc 集群属于与 Dataproc Metastore 服务不同的项目,则必须先设置额外权限,然后才能创建 Dataproc 集群。

gRPC

如果您使用 gRPC 端点协议,请考虑使用 网络要求如下:

  • 使用 gRPC 端点创建 Dataproc Metastore 后 协议,您必须授予其他 IAM 角色

  • 如果您使用的是 Dataproc 个人集群身份验证,则您的 Dataproc Metastore 必须使用 gRPC 端点协议。

  • 如果您的 Dataproc 集群属于其他项目 与 Dataproc Metastore 服务相比 您必须设置其他权限 然后再创建 Dataproc 集群。

创建集群并附加 Dataproc Metastore

以下说明介绍了如何创建 Dataproc 并从 Dataproc Metastore 服务连接到该集群。这些 说明假设您已经创建 Dataproc Metastore 服务

  • 在创建 Dataproc 集群之前,请确保您选择的 Dataproc 映像与您在创建 Dataproc Metastore 时选择的 Hive Metastore 版本兼容。如需了解详情,请参阅 Dataproc 映像版本列表
  • 如需优化网络连接,请创建 Dataproc 集群 与 Dataproc Metastore 服务位于同一区域。

控制台

  1. 在 Google Cloud 控制台中,打开 Dataproc 创建集群页面:

    打开创建集群

  2. 集群名称字段中,输入集群的名称。

  3. 对于区域可用区菜单,选择同一区域 您在其中创建了 Dataproc Metastore 服务的凭据。 您可以选择任何可用区。

  4. 点击自定义集群标签页。

  5. 网络配置部分,选择与 您创建了 Dataproc Metastore 服务。

  6. Dataproc Metastore 部分中,选择 Dataproc Metastore 服务 附件。如果您尚未创建,可以选择创建 新服务

  7. 可选:如果您的 Dataproc Metastore 服务使用 gRPC 端点协议:

    1. 点击管理安全性标签页。
    2. 项目访问权限部分中,选择 为此集群启用 cloud-platform 范围
  8. 根据需要配置其余服务选项。

  9. 如需创建集群,请点击创建

    新集群会显示在“集群”列表中。系统会列出集群状态 设置为 Provisioning,直到集群可供使用。待它可供使用后, 状态就会变为正在运行

gcloud CLI

如需创建集群并连接 Dataproc Metastore,请运行 正在关注gcloud dataproc clusters create 命令:

gcloud dataproc clusters create CLUSTER_NAME \
    --dataproc-metastore=projects/PROJECT_ID/locations/LOCATION/services/SERVICE \
    --region=LOCATION \
    --scopes=SCOPES

替换以下内容:

  • CLUSTER_NAME:新实例的名称 Dataproc 集群。
  • PROJECT_ID: 项目中创建 Dataproc Metastore 服务。
  • LOCATION:您创建 Dataproc Metastore 服务
  • SERVICE: Dataproc Metastore 服务 集群。
  • SCOPES:(可选)如果您的 Dataproc Metastore 服务使用 gRPC 端点协议,请使用 cloud-platform

REST

按照 API 说明使用 API Explorer 创建集群

使用 Dataproc 集群属性连接集群

您还可以使用 Dataproc 属性将 Dataproc 集群附加到 Dataproc Metastore。这些属性包括 Dataproc Metastore ENDPOINT_URIWAREHOUSE_DIR

如果您的 Dataproc Metastore 服务使用 Private Service Connect 或者,如果您要将 Dataproc 集群连接到辅助版本 Dataproc Metastore 服务的名称。

您可以通过以下两种方式使用 ENDPOINT_URIWAREHOUSE_DIR 属性关联 Dataproc 集群:

选项 1:创建 Dataproc 集群时

创建 Dataproc 集群时,请将属性标志与 以下 Hive 配置。

gcloud dataproc clusters create CLUSTER_NAME \
     --properties="hive:hive.metastore.uris=ENDPOINT_URI,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR/hive-warehouse"

替换以下内容:

  • CLUSTER_NAME:新 Dataproc 的名称 集群。
  • ENDPOINT_URI端点 URI Dataproc Metastore 服务的名称。
  • WAREHOUSE_DIRHive 仓库目录的位置。

方法 2:更新 hive-site.xml 文件

您还可以通过直接修改 集群的 hive-site.xml 文件。

  1. 使用 SSH 连接到 .*-m 集群。
  2. 打开 /etc/hive/conf/hive-site.xml 文件并修改以下行:

    <property>
       <name>hive.metastore.uris</name>
       <!-- Update this value. -->
       <value>ENDPOINT_URI</value>
    </property>
    <!-- Add this property entry. -->
    <property>
       <name>hive.metastore.warehouse.dir</name>
       <value>WAREHOUSE_DIR</value>
    </property>
    

    替换以下内容:

  3. 重启 HiveServer2:

    sudo systemctl restart hive-server2.service
    

自行管理的集群

自行管理的集群可以是 Apache Hive 实例, 一个Apache Spark实例 或 Presto 集群。

关联自行管理的集群

在客户端配置文件中设置以下值:

hive.metastore.uris=ENDPOINT_URI
hive.metastore.warehouse.dir=WAREHOUSE_DIR

替换以下内容:

后续步骤