如需创建 Dataproc Metastore 服务,请在在本地浏览器中打开的“创建服务”页面上输入服务参数,然后使用 gcloud
CLI 或发出 Dataproc Metastore API 方法 services.create。
创建服务时,您需要为服务指定区域。如需了解哪些位置支持 Dataproc Metastore,请参阅 Cloud 位置。
其他字段包括 Metastore 版本、网络、端口和服务层级。请注意,如果您未指定网络,则 Dataproc Metastore 会使用服务项目中的 default
网络。Dataproc Metastore 使用专用 IP,因此只有同一网络上的虚拟机可以访问 Dataproc Metastore 服务。
准备工作
- 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Dataproc Metastore API。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Dataproc Metastore API。
大多数
gcloud metastore
命令需要位置信息。您可以使用--location
标志指定位置,也可以通过设置默认位置来指定位置。请勿设置组织政策限制条件来限制 VPC 对等互连。指定
constraints/compute.restrictVpcPeering
会导致创建请求失败并显示INVALID_ARGUMENT
错误。如果您必须设置限制条件,请使用以下命令允许under:folders/270204312590
:gcloud resource-manager org-policies allow compute.restrictVpcPeering under:folders/270204312590 --organization ORGANIZATION_ID
如需了解详情,请参阅组织政策限制条件。
如果您想要为 Hive Metastore 实例启用 Kerberos,则必须执行以下操作:
- 托管您自己的 Kerberos 密钥分发中心 (KDC)。
- 在 VPC 网络和 KDC 之间建立 IP 连接。
- 设置包含 Hive Keytab 内容的 Secret Manager Secret。
- 指定 KDC 和 Hive Keytab 中的主帐号。
- 在 Google Cloud Storage 存储分区中指定 krb5.conf 文件。
如需了解详情,请参阅配置 Kerberos。
设置共享 VPC
如需创建 Cloud Storage Metastore 服务,并且此网络所属服务所属的项目不属于该服务所属的项目,根据网络项目的 IAM 政策中,您必须向该服务项目的 Dataproc Metastore 服务代理授予
roles/metastore.serviceAgent
(service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com
)。gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \ --role "roles/metastore.serviceAgent" \ --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com"
访问权限控制机制
如需创建服务,您必须请求具有
metastore.services.create
IAM 权限的 IAM 角色。Dataproc Metastore 特定角色roles/metastore.admin
和roles/metastore.editor
包含创建权限。您也可以使用
roles/owner
和roles/editor
旧版角色向用户或群组授予创建权限。
如需了解详情,请参阅 Dataproc Metastore IAM 和访问权限控制。
创建 Dataproc Metastore 服务
以下说明介绍了如何创建 Dataproc Metastore 服务。
控制台
在 Cloud Console 中,打开 Dataproc Metastore 页面:
在 Dataproc Metastore 页面顶部,点击创建按钮。此时会打开创建服务页面。
在服务名称字段中,为服务输入一个唯一名称。如需了解命名惯例,请参阅资源命名惯例。
选择数据位置。
选择 Hive Metastore 版本。如果未指定,系统会使用 Hive
3.1.2
版。如需了解详情,请参阅版本政策。选择发布渠道。如果未指定,则系统会使用
Stable
。如需了解详情,请参阅发布渠道。输入端口。这是提供 Dataproc Metastore Thrift 接口的 TCP 端口。如果未提供,则系统会使用端口号
9083
。选择服务层级。这会影响服务的容量。
Developer
是默认层级。它非常适合低成本的概念验证,因为它可以提供有限的可伸缩性并且没有容错能力。Enterprise
层级提供灵活的可伸缩性、容错能力和多可用区高可用性。它可以处理大量 Dataproc Metastore 工作负载。选择 网络。该服务必须连接到其他 Metastore 客户端(例如 Dataproc 集群)所连接的网络才能访问它们。如果未提供,系统会使用
default
网络。可选:点击使用共享 VPC 网络,然后输入共享 VPC 网络的项目 ID 和 VPC 网络名称。如需了解详情,请参阅将 VPC Service Controls 与 Dataproc Metastore 搭配使用。
可选:启用 Data Catalog 同步。如需了解详情,请参阅 Dataproc Metastore 到 Data Catalog 同步。
可选:为服务的维护期选择星期几和时段。如需了解详情,请参阅维护期。
可选:启用 Kerberos keytab 文件:
点击切换开关以启用 Kerberos。
选择或输入您的 Secret 资源 ID。
选择使用最新的 Secret 版本,或者选择要使用的旧版本。
输入 Kerberos 主帐号。这是为此 Dataproc Metastore 服务分配的主帐号。
浏览到 krb5 config 文件。
可选:点击使用客户管理的加密密钥 (CMEK),然后选择客户管理的密钥。如需了解详情,请参阅使用 CMEK(客户管理的加密密钥)。
可选:如要将映射应用于 Hive Metastore,请点击 + 添加替换。
可选:如需向 Metastore 服务资源添加其他元数据,请点击 + 添加标签。
要创建并启动该服务,请点击提交按钮。
确认您已返回 Dataproc Metastore 页面,并且新服务显示在列表中。
gcloud
运行以下
gcloud metastore services create
命令创建服务:gcloud metastore services create SERVICE \ --location=LOCATION \ --labels=k1=v1,k2=v2,k3=v3 \ --network=NETWORK \ --port=PORT \ --tier=TIER \ --hive-metastore-version=HIVE_METASTORE_VERSION \ --release-channel=RELEASE_CHANNEL \ --hive-metastore-configs=K1=V1,K2=V2 \ --kerberos-principal=KERBEROS_PRINCIPAL \ --krb5-config=KRB5_CONFIG \ --keytab=CLOUD_SECRET --encryption-kms-key=KMS_KEY
替换以下内容:
SERVICE
:新服务的名称。LOCATION
:表示 Google Cloud 区域。k1=v1,k2=v2,k3=v3
:使用的标签。NETWORK
:访问服务的 VPC 网络的名称。如果使用属于与服务不同的项目的 VPC 网络,则必须提供整个资源名称,例如projects/HOST_PROJECT/global/networks/NETWORK_ID
。PORT
:提供 Metastore Thrift 接口的 TCP 端口。默认端口:9083。TIER
:新服务的层级容量。HIVE_METASTORE_VERSION
:在此位置创建新 Metastore 服务时可以使用的 Hive Metastore 版本。服务器保证列表中只有一个HiveMetastoreVersion
设置为is_default
。RELEASE_CHANNEL
:服务的发布版本。K1=V1,K2=V2
(可选):使用的 Hive Metastore 配置。KERBEROS_PRINCIPAL
(可选):keytab 和 KDC 中存在的 Kerberos 主帐号。典型的主帐号格式为“primary/instance@REALM”,但系统没有规定确切的格式。KRB5_CONFIG
(可选):krb5.config 文件指定 KDC 和 Kerberos 大区信息,其中包括 KDC 的位置以及大区和 Kerberos 应用的默认值。CLOUD_SECRET
(可选):Secret Manager Secret 版本的相对资源名称。KMS_KEY
:引用密钥资源 ID。
验证创建操作是否成功。
REST
按照 API 说明使用 API Explorer 创建服务。
使用非 RFC 1918 专用 IP 地址范围
提供的 VPC 网络可能会耗尽 Dataproc Metastore 服务所需的可用 RFC 1918 地址。如果发生这种情况,Dataproc Metastore 会尝试保留 RFC 1918 范围之外的专用 IP 地址范围,以便创建服务。如需查看受支持的非 RFC 1918 专用范围的列表,请参阅 VPC 网络文档中的有效范围。
Dataproc Metastore 中使用的非 RFC 1918 专用 IP 地址可能会与连接到提供 VPC 网络的本地网络中的范围冲突。如需检查 Dataproc Metastore 预留的 RFC 1918 和非 RFC 1918 专用 IP 地址列表:
gcloud compute addresses list \
--project NETWORK_PROJECT_ID \
--filter="purpose:VPC_PEERING AND name ~ cluster|resourcegroup"
如果确定了冲突,无法通过重新配置本地网络缓解冲突,请删除违规的 Dataproc Metastore 服务,并在 2 小时后重新创建它。
创建 Dataproc Metastore 服务后
创建服务后,您可以创建和关联 Dataproc 集群或将该服务用作其 Hive Metastoreor 的自行管理的 Apache Hive/Apache Spark/Presto 集群。