创建 Dataproc Metastore 服务后,您可以挂接任何 以下服务:
- Dataproc 集群。
- 一个自行管理的 Apache Hive 实例, 一个Apache Spark实例 或 Presto 集群。
您关联其中某项服务后,它会使用您的 在查询执行期间将 Dataproc Metastore 服务用作其 Hive Metastore。
准备工作
所需的角色
要获取创建 Dataproc Metastore 和 Dataproc 集群所需的权限, 请让管理员授予您 以下 IAM 角色:
-
要授予对 Dataproc Metastore 资源的完全控制权,请执行以下任一操作:
-
Dataproc Metastore Editor (
roles/metastore.editor
) 针对用户账号或服务账号 -
Dataproc Metastore 管理员 (
roles/metastore.admin
) 针对用户账号或服务账号
-
Dataproc Metastore Editor (
-
如需创建 Dataproc 集群,请执行以下操作:
(
roles/dataproc.worker
) 针对 Dataproc 虚拟机服务账号 -
如需授予对 Hive 仓库目录的读写权限,请运行以下命令:
(
roles/storage.objectAdmin
) 针对 Dataproc 虚拟机服务账号
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含创建 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 是一项托管式 Apache Spark 和 Apache Hadoop 服务,借助该服务,您可以充分利用开源数据工具来执行批处理、查询、流式传输和机器学习。
注意事项
在创建并连接 Dataproc 集群之前, 请查看什么是端点协议 您的 Dataproc Metastore 服务用量。此协议定义了 Hive Metastore 客户端如何访问存储在 Dataproc Metastore 中的元数据。此选择还会影响您可以集成和使用的功能 您的服务
Apache Thrift
如果您使用 Apache Thrift 端点协议,请考虑使用 网络要求如下:
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 服务位于同一区域。
控制台
在 Google Cloud 控制台中,打开 Dataproc 创建集群页面:
在集群名称字段中,输入集群的名称。
对于区域和可用区菜单,选择同一区域 您在其中创建了 Dataproc Metastore 服务的凭据。 您可以选择任何可用区。
点击自定义集群标签页。
在网络配置部分,选择与 您创建了 Dataproc Metastore 服务。
在 Dataproc Metastore 部分中,选择 Dataproc Metastore 服务 附件。如果您尚未创建,可以选择创建 新服务。
可选:如果您的 Dataproc Metastore 服务使用 gRPC 端点协议:
- 点击管理安全性标签页。
- 在项目访问权限部分中,选择 为此集群启用 cloud-platform 范围。
根据需要配置其余服务选项。
如需创建集群,请点击创建。
新集群会显示在“集群”列表中。系统会列出集群状态 设置为 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_URI
和 WAREHOUSE_DIR
。
如果您的 Dataproc Metastore 服务使用 Private Service Connect 或者,如果您要将 Dataproc 集群连接到辅助版本 Dataproc Metastore 服务的名称。
您可以通过以下两种方式使用 ENDPOINT_URI
和 WAREHOUSE_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_DIR
:Hive 仓库目录的位置。
方法 2:更新 hive-site.xml
文件
您还可以通过直接修改
集群的 hive-site.xml
文件。
- 使用 SSH 连接到
.*-m
集群。 打开
/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>
替换以下内容:
重启 HiveServer2:
sudo systemctl restart hive-server2.service
自行管理的集群
自行管理的集群可以是 Apache Hive 实例, 一个Apache Spark实例 或 Presto 集群。
关联自行管理的集群
在客户端配置文件中设置以下值:
hive.metastore.uris=ENDPOINT_URI
hive.metastore.warehouse.dir=WAREHOUSE_DIR
替换以下内容: