本页介绍了如何创建 Dataproc Metastore 服务。
创建 Dataproc Metastore 服务后,您可以导入元数据并连接到以下任一服务:
自行管理的 Apache Hive 实例、Apache Spark 实例或 Presto 集群。
关联其中任一服务后,该服务会在执行查询期间使用您的 Dataproc Metastore 服务作为其 Hive Metastore。
准备工作
- 了解 Dataproc Metastore 1 服务与 Dataproc Metastore 2 服务之间的区别。
- 在您的项目中启用 Dataproc Metastore。
- 了解特定于您的项目的网络要求。
所需的角色
如需获得创建 Dataproc Metastore 所需的权限,请让管理员根据最小权限原则,为您授予项目的以下 IAM 角色:
-
授予对 Dataproc Metastore 资源的完全控制权 (
roles/metastore.editor
) -
授予对所有 Dataproc Metastore 资源的完整访问权限,包括 IAM 政策管理 (
roles/metastore.admin
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含创建 Dataproc Metastore 所需的 metastore.services.create
权限。
使用默认设置创建 Dataproc Metastore
使用默认设置创建 Dataproc Metastore 会将服务配置为企业级别、中等实例大小、最新版本的 Hive Metastore、Thrift 端点和 us-central
数据位置。
Dataproc Metastore 2
以下说明介绍了如何使用 Thrift 端点和其他提供的默认设置创建 Dataproc Metastore 2。
控制台
在 Google Cloud 控制台中,前往 Dataproc Metastore 页面。
在导航栏中,点击 +Create。
系统随即会打开创建 Metastore 服务对话框。
选择 Dataproc Metastore 2。
在价格和容量部分,选择实例大小。
如需了解详情,请参阅定价方案和伸缩配置。
在服务名称字段中,为服务输入一个唯一名称。
如需了解命名惯例,请参阅资源命名惯例。
选择数据位置。
对于其余服务配置选项,请使用提供的默认值。
如需创建并启动该服务,请点击提交。
您的新 Metastore 服务会显示在 Dataproc Metastore 页面上。在服务准备就绪之前,状态会显示为正在创建。准备就绪后,状态会变为有效。 预配服务可能需要几分钟时间。
gcloud CLI
如需使用提供的默认值创建 Dataproc Metastore 元存储空间服务 2,请运行以下 gcloud metastore services create
命令:
gcloud metastore services create SERVICE \ --location=LOCATION \ --instance-size=INSTANCE_SIZE \ --scaling-factor=SCALING_FACTOR
替换以下内容:
SERVICE
:新 Dataproc Metastore 服务的名称。LOCATION
:您要创建 Dataproc Metastore 的 Google Cloud 区域。您还可以设置默认位置。如需了解命名惯例,请参阅资源命名惯例。
INSTANCE_SIZE
:多区域 Dataproc Metastore 的实例大小。例如small
、medium
或large
。如果为INSTANCE_SIZE
指定了值,请勿为SCALING_FACTOR
指定值。SCALING_FACTOR
:Dataproc Metastore 服务的缩放因子。例如0.1
。 如果为SCALING_FACTOR
指定了值,请勿为INSTANCE_SIZE
指定值。
REST
按照 API 说明使用 API Explorer 创建服务。
Dataproc Metastore 1
以下说明介绍了如何使用 Thrift 端点和其他提供的默认设置创建 Dataproc Metastore 1。
控制台
在 Google Cloud 控制台中,前往 Dataproc Metastore 页面。
在导航栏中,点击 +Create。
系统随即会打开创建 Metastore 服务对话框。
选择 Dataproc Metastore 1。
在服务名称字段中,为服务输入一个唯一名称。
如需了解命名惯例,请参阅资源命名惯例。
选择数据位置。
对于其余服务配置选项,请使用提供的默认值。
如需创建并启动该服务,请点击提交。
您的新 Metastore 服务会显示在 Dataproc Metastore 页面上。在服务准备就绪之前,状态会显示为正在创建。准备就绪后,状态会变为有效。 预配服务可能需要几分钟的时间。
gcloud CLI
如需使用提供的默认值创建基本元存储服务,请运行以下 gcloud metastore services create
命令:
gcloud metastore services create SERVICE \ --location=LOCATION
替换以下内容:
REST
按照 API 说明使用 APIs Explorer 创建服务。
使用高级设置创建 Dataproc Metastore
使用高级设置创建 Dataproc Metastore 时,您必须修改网络配置、伸缩设置、端点设置、安全设置和可选功能等配置。
Dataproc Metastore 2 或 1
以下说明介绍了如何使用高级设置创建 Dataproc Metastore 2 或 Dataproc Metastore 1 服务。
控制台
开始
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:
在导航菜单中,点击 +Create(创建)。
系统随即会打开创建 Metastore 服务对话框。
选择要使用的 Metastore 版本,即 Dataproc Metastore 1 或 Dataproc Metastore 2。
服务信息
(可选)对于 Dataproc Metastore 2,在价格和容量部分,选择实例大小。
如需了解详情,请参阅定价方案和伸缩配置。
在服务名称字段中,为服务输入一个唯一名称。
如需了解命名惯例,请参阅资源命名惯例。
选择数据位置。
选择 Hive Metastore 版本。
如果未修改此值,您的服务将使用最新的支持版本的 Hive(目前为版本
3.1.2
)。如需详细了解如何选择正确的版本,请参阅版本政策。
选择发布渠道。
如果未修改此值,元存储空间将使用
Stable
值。如需了解详情,请参阅发布渠道。输入 TCP 端口。
Thrift 端点连接到的 TCP 端口。如果未修改此值,则系统会使用端口号
9083
。如果您将端点更改为 gRPC,此值会自动更改为443
,并且无法更改。(可选)对于 Dataproc Metastore 1,选择服务层级。
服务层级会影响服务的容量。如需了解详情,请参阅服务层级。
端点协议
可选:选择端点协议。
默认选择的选项为 Apache Thrift。如需详细了解不同的端点,请参阅选择端点协议。
网络配置
选择网络配置。
默认情况下,您的服务仅在一个 VPC 网络中公开,并使用
default
网络。default
网络仅允许您的服务连接到同一项目中的其他服务。将网络设置从默认设置更改为以下操作:
- 将您的 Dataproc Metastore 服务连接到其他项目中的 Dataproc Metastore 服务。
- 将 Dataproc Metastore 服务与其他 Google Cloud 服务(例如 Dataproc 集群)搭配使用。
可选:点击使用共享 VPC 网络,然后输入项目 ID 和 VPC 网络名称。
可选:点击使服务在 VPC 子网中可供访问,然后选择子网。您最多可以指定 5 个子网。
点击完成。
元数据集成
可选:启用 Data Catalog 同步。
如需了解详情,请参阅 Dataproc Metastore 到 Data Catalog 同步。
维护时段
可选:为维护窗口选择星期几和时段。
如需了解详情,请参阅维护期。
安全性
可选:启用 Kerberos。
- 如需启用 Kerberos,请点击切换开关。
- 选择或输入您的 Secret 资源 ID。
- 选择使用最新的 Secret 版本,或者选择要使用的旧版本。
输入 Kerberos 主账号。
这是为此 Dataproc Metastore 服务分配的主账号。
浏览到 krb5 config 文件。
可选:选择加密类型。
默认选定的选项是 Google 管理的加密密钥。
如需选择客户管理的密钥,请点击使用客户管理的加密密钥 (CMEK)。
如需了解详情,请参阅使用客户管理的加密密钥。
Metastore 配置替换
可选:如要将映射应用于 Hive Metastore,请点击 + 添加替换。
辅助版本配置
可选:如需添加辅助版本配置,请点击启用。
如需了解详情,请参阅辅助版本。
数据库类型
可选:选择数据库类型。
对于数据库类型,选择 MySQL 或 Spanner。MySQL 是默认的数据库类型。
如需详细了解如何选择特定的数据库类型,请参阅数据库类型。
标签
- 可选:如需添加或移除用于描述元数据的可选标签,请点击 + 添加标签。
启动服务
如需创建并启动该服务,请点击提交。
您的新 Metastore 服务会显示在 Dataproc Metastore 页面上。在服务准备就绪之前,状态会显示为正在创建。准备就绪后,状态会变为有效。 预配服务可能需要几分钟时间。
gcloud CLI
如需创建元存储空间,请运行以下
gcloud metastore services create
命令:gcloud metastore services create SERVICE \ --location=LOCATION \ --instance-size=INSTANCE_SIZE \ --scaling-factor=SCALING_FACTOR \ --port=PORT \ --tier=TIER \ --endpoint-protocol=ENDPOINT_PROTOCOL \ --database-type=DATABASE_TYPE \ --hive-metastore-version=HIVE_METASTORE_VERSION \ --data-catalog-sync=DATA_CATALOG_SYNC \ --release-channel=RELEASE_CHANNEL \ --hive-metastore-configs=METADATA_OVERRIDE \ --labels=LABELS \ --auxiliary-versions=AUXILIARY_VERSION \ --network=NETWORK \ --consumer-subnetworks="projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET1, projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET2" \ --kerberos-principal=KERBEROS_PRINCIPAL \ --krb5-config=KRB5_CONFIG \ --keytab=CLOUD_SECRET \ --encryption-kms-key=KMS_KEY
替换以下内容:
服务设置:
SERVICE
:新 Dataproc Metastore 服务的名称。例如0.1
。 如果为SCALING_FACTOR
指定了值,请勿为INSTANCE_SIZE
指定值。LOCATION
:您要创建 Dataproc Metastore 的 Google Cloud 区域。您还可以设置默认位置。PORT
(可选):Thrift 端点使用的 TCP 端口。如果未设置,则使用端口9083
。如果您选择使用 gRPC 端点,您的端口号会自动更改为443
。TIER
:对于 Dataproc Metastore 1,为可选项:新服务的服务层级。如果未设置,则系统会使用Developer
值。ENDPOINT_PROTOCOL
:可选:为您的服务选择端点协议。DATABASE_TYPE
:(可选)为您的服务选择数据库类型。如需详细了解如何选择特定的数据库类型,请参阅数据库类型。DATA_CATALOG_SYNC
:可选:启用 Data Catalog 同步功能。HIVE_METASTORE_VERSION
:(可选)您要与服务搭配使用的 Hive Metastore 版本。例如3.1.2
。如果未设置,则使用最新版本的 Hive。RELEASE_CHANNEL
:可选:服务的发布渠道。如果未设置,则系统会使用Stable
值。METADATA_OVERRIDE
(可选):您要应用于服务的 Hive Metastore 替换配置。请使用以下格式的英文逗号分隔列表k1=v1,k2=v2,k3=v3
。LABELS
:可选:用于向服务添加其他元数据的键值对。请使用以下格式的英文逗号分隔列表k1=v1,k2=v2,k3=v3
。Dataproc MetastoreAUXILIARY_VERSION
:可选:启用辅助版本。如需了解详情,请参阅辅助版本。
缩放设置:
INSTANCE_SIZE
:对于 Dataproc Metastore 2,为可选项:多区域 Dataproc Metastore 的实例大小。例如small
、medium
或large
。如果为INSTANCE_SIZE
指定了值,请勿为SCALING_FACTOR
指定值。SCALING_FACTOR
(对于 Dataproc Metastore 2 为可选):Dataproc Metastore 服务的缩放系数。例如0.1
。如果为SCALING_FACTOR
指定了值,请勿为INSTANCE_SIZE
指定值
网络设置:
NETWORK
:您要连接到服务的 VPC 网络的名称。如果未设置,则系统会使用default
值。如果您使用的 VPC 网络属于与服务不同的项目,则必须提供整个相对资源名称。例如
projects/HOST_PROJECT/global/networks/NETWORK_ID
。SUBNET1
、SUBNET2
:可选:可以访问您的服务的子网列表。您可以使用子网的 ID、完全限定网址或相对名称。您最多可以指定 5 个子网。
Kerberos 设置:
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 说明使用 APIs Explorer 创建服务。
为 Dataproc Metastore 设置 Hive Metastore 配置替换项
如果您的 Apache Hive 仓库目录位于 Cloud Storage 上,您应设置 Metastore 配置替换项。此替换项会将您的自定义数据仓库设置为 Dataproc Metastore 服务的默认仓库目录。
在设置此替换项之前,请确保您的 Dataproc Metastore 服务具有访问仓库目录的对象读写权限。如需了解详情,请参阅 Hive 仓库目录。
以下说明介绍了如何为新的 Dataproc Metastore 服务设置 Hive Metastore 配置替换项。
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:
在导航栏中,点击 +Create。
在 Metastore 配置替换项中,输入以下值:
- 键:
hive.metastore.warehouse.dir
。 - 值:仓库目录的 Cloud Storage 位置。
例如:
gs://my-bucket/path/to/location
。
- 键:
根据需要配置其余服务选项,或使用提供的默认值。
点击提交。
返回 Dataproc Metastore 页面,并确认您的服务是否已成功创建。
gcloud CLI
如需创建具有 Hive 替换项的 Dataproc Metastore 服务,请运行以下
gcloud metastore services create
命令:gcloud metastore services create SERVICE \ --location=LOCATION \ --hive-metastore-configs="hive.metastore.warehouse.dir=CUSTOMER_DIR"
替换以下内容:
SERVICE
:新 Dataproc Metastore 服务的名称。LOCATION
:您要创建 Dataproc Metastore 的 Google Cloud 区域。您还可以设置默认位置。CUSTOMER_DIR
:您的仓库目录的 Cloud Storage 位置。例如:gs://my-bucket/path/to/location
。
验证创建操作是否成功。
创建具有自动扩缩功能的 Dataproc Metastore
Dataproc Metastore 2 支持自动扩缩。如果您启用自动扩缩功能,则可以设置最小扩缩因子和最大扩缩因子。设置此值后,您的服务会自动增加或减少运行工作负载所需的缩放系数。
自动扩缩注意事项
- 自动伸缩和缩放比例是互斥的选项。例如,如果您开启了自动扩缩,则无法手动设置缩放比例或大小。
- 自动扩缩仅适用于单区域 Dataproc Metastore 实例。
- 启用自动伸缩功能后,系统会清除现有的缩放比例设置。
- 停用自动扩缩功能后:
- 系统会清除现有的自动扩缩设置。
- 缩放比例设置为服务上配置的最后一个
autoscaling_factor
。
- 自动扩缩因子的下限和上限是可选的。如果未设置,则默认值分别为
0.1
和6
。
请选择以下任一标签页,了解如何创建启用了自动扩缩功能的 Dataproc Metastore 服务 2。
控制台
在 Google Cloud 控制台中,前往 Dataproc Metastore 页面。
在导航栏中,点击 +Create。
系统随即会打开创建 Metastore 服务对话框。
选择 Dataproc Metastore 2。
在价格和容量部分中,选择企业版 - 单个区域
在实例大小下,点击启用自动扩缩。
在实例大小下,使用滑块选择实例大小下限和上限。
如需创建并启动该服务,请点击提交。
您的新 Metastore 服务会显示在 Dataproc Metastore 页面上。在服务准备就绪之前,状态会显示为正在创建。 准备就绪后,状态会变为有效。 预配服务可能需要几分钟时间。
REST
curl -X POST -s -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"scaling_config":{"autoscaling_config":{"autoscaling_enabled": true,"limit_config":{"max_scaling_factor":MAX_SCALING_FACTOR,"min_scaling_factor": MIN_SCALING_FACTOR}}}}' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/services?service_id=SERVICE_ID
替换以下内容:
MIN_INSTANCES
可选:自动扩缩配置中要使用的实例数量下限。如果未指定此值,则使用默认值0.1
。MAX_INSTANCES
可选:自动扩缩配置中使用的实例数上限。如果未指定此值,则使用默认值6
。
创建多区域 Dataproc Metastore 服务
如需创建多区域 Dataproc Metastore,请参阅设置多区域 Dataproc Metastore 服务。
使用共享 VPC 创建 Dataproc Metastore 服务
借助共享 VPC,您可以将多个项目中的 Dataproc Metastore 资源连接到一个公用 VPC 网络。
如需创建使用共享 VPC 配置的 Dataproc Metastore 服务,请参阅使用高级设置创建服务。
注意事项
VPC 网络与使用 gRPC 端点协议配置的 Dataproc Metastore 服务无关。
对于使用 Thrift 端点协议配置的 Dataproc Metastore 服务,请确保您的 Dataproc Metastore 服务及其所关联的 Dataproc 集群使用的是同一共享 VPC 网络。
对于使用 Thrift 端点协议和 Private Service Connect 配置的 Dataproc Metastore 服务,请确保您使用的是共享 VPC 网络中的子网。
共享 VPC 网络所需的 IAM 角色
如需创建一个 VPC 与 Dataproc Metastore 服务关联,并且此 VPC 所属网络所属项目不属于该服务所属的项目,根据网络项目的 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"
排查常见问题
常见问题包括:
限制 VPC 对等互连。在创建元存储空间之前,请勿设置组织政策限制条件来限制 VPC 对等互连,否则元存储空间创建将会失败。如需详细了解如何设置正确的 VPC 配置,请参阅由于存在限制条件来限制 VPC 对等互连,因此服务创建失败。
VPC 网络问题。创建元存储时,您使用的 VPC 网络可能会耗尽 Dataproc Metastore 服务所需的可用 RFC 1918 地址。如需详细了解如何解决此问题,请参阅已分配的 IP 地址范围用尽。