创建 Dataproc Metastore 服务

本页介绍了如何创建 Dataproc Metastore 服务。

创建 Dataproc Metastore 服务后,您可以导入元数据并连接到以下任一服务:

关联其中任一服务后,该服务会在执行查询期间使用您的 Dataproc Metastore 服务作为其 Hive Metastore。

准备工作

所需的角色

如需获得创建 Dataproc Metastore 所需的权限,请让管理员根据最小权限原则,为您授予项目的以下 IAM 角色:

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

此预定义角色包含创建 Dataproc Metastore 所需的 metastore.services.create 权限。

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

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

使用默认设置创建 Dataproc Metastore

使用默认设置创建 Dataproc Metastore 会将服务配置为企业级别、中等实例大小、最新版本的 Hive Metastore、Thrift 端点和 us-central 数据位置。

Dataproc Metastore 2

以下说明介绍了如何使用 Thrift 端点和其他提供的默认设置创建 Dataproc Metastore 2。

控制台

  1. 在 Google Cloud 控制台中,前往 Dataproc Metastore 页面。

    前往 Dataproc Metastore

  2. 在导航栏中,点击 +Create

    系统随即会打开创建 Metastore 服务对话框。

  3. 选择 Dataproc Metastore 2

  4. 价格和容量部分,选择实例大小。

    如需了解详情,请参阅定价方案和伸缩配置

  5. 服务名称字段中,为服务输入一个唯一名称。

    如需了解命名惯例,请参阅资源命名惯例

  6. 选择数据位置

    如需详细了解如何选择适当的区域,请参阅可用区域和可用区区域级端点

  7. 对于其余服务配置选项,请使用提供的默认值。

  8. 如需创建并启动该服务,请点击提交

    您的新 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 的实例大小。例如 smallmediumlarge。如果为 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。

控制台

  1. 在 Google Cloud 控制台中,前往 Dataproc Metastore 页面。

    前往 Dataproc Metastore

  2. 在导航栏中,点击 +Create

    系统随即会打开创建 Metastore 服务对话框。

  3. 选择 Dataproc Metastore 1

  4. 服务名称字段中,为服务输入一个唯一名称。

    如需了解命名惯例,请参阅资源命名惯例

  5. 选择数据位置

    如需详细了解如何选择适当的区域,请参阅可用区域和可用区区域级端点

  6. 对于其余服务配置选项,请使用提供的默认值。

  7. 如需创建并启动该服务,请点击提交

    您的新 Metastore 服务会显示在 Dataproc Metastore 页面上。在服务准备就绪之前,状态会显示为正在创建。准备就绪后,状态会变为有效。 预配服务可能需要几分钟的时间。

gcloud CLI

如需使用提供的默认值创建基本元存储服务,请运行以下 gcloud metastore services create 命令:

gcloud metastore services create SERVICE \
  --location=LOCATION

替换以下内容:

  • SERVICE:新 Dataproc Metastore 服务的名称。
  • LOCATION:您要创建 Dataproc Metastore 的 Google Cloud 区域。您还可以设置默认位置

    如需了解命名惯例,请参阅资源命名惯例

REST

按照 API 说明使用 APIs Explorer 创建服务

使用高级设置创建 Dataproc Metastore

使用高级设置创建 Dataproc Metastore 时,您必须修改网络配置、伸缩设置、端点设置、安全设置和可选功能等配置。

Dataproc Metastore 2 或 1

以下说明介绍了如何使用高级设置创建 Dataproc Metastore 2 或 Dataproc Metastore 1 服务。

控制台

开始

  1. 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:

    打开 Dataproc Metastore

  2. 在导航菜单中,点击 +Create(创建)。

    系统随即会打开创建 Metastore 服务对话框。

  3. 选择要使用的 Metastore 版本,即 Dataproc Metastore 1Dataproc Metastore 2

    服务信息

    “创建服务”页面
    创建服务页面示例

    1. (可选)对于 Dataproc Metastore 2,在价格和容量部分,选择实例大小。

      如需了解详情,请参阅定价方案和伸缩配置

    2. 服务名称字段中,为服务输入一个唯一名称。

      如需了解命名惯例,请参阅资源命名惯例

    3. 选择数据位置

      如需详细了解如何选择适当的区域,请参阅可用区域和可用区区域级端点

    4. 选择 Hive Metastore 版本

      如果未修改此值,您的服务将使用最新的支持版本的 Hive(目前为版本 3.1.2)。

      如需详细了解如何选择正确的版本,请参阅版本政策

    5. 选择发布渠道

      如果未修改此值,元存储空间将使用 Stable 值。如需了解详情,请参阅发布渠道

    6. 输入 TCP 端口

      Thrift 端点连接到的 TCP 端口。如果未修改此值,则系统会使用端口号 9083。如果您将端点更改为 gRPC,此值会自动更改为 443,并且无法更改。

    7. (可选)对于 Dataproc Metastore 1,选择服务层级

      服务层级会影响服务的容量。如需了解详情,请参阅服务层级

    端点协议

    • 可选:选择端点协议。

      默认选择的选项为 Apache Thrift。如需详细了解不同的端点,请参阅选择端点协议

    网络配置

    1. 选择网络配置

      默认情况下,您的服务仅在一个 VPC 网络中公开,并使用 default 网络。default 网络仅允许您的服务连接到同一项目中的其他服务。

      将网络设置从默认设置更改为以下操作:

      • 将您的 Dataproc Metastore 服务连接到其他项目中的 Dataproc Metastore 服务。
      • 将 Dataproc Metastore 服务与其他 Google Cloud 服务(例如 Dataproc 集群)搭配使用。
    2. 可选:点击使用共享 VPC 网络,然后输入项目 IDVPC 网络名称

    3. 可选:点击使服务在 VPC 子网中可供访问,然后选择子网。您最多可以指定 5 个子网。

    4. 点击完成

    元数据集成

    维护时段

    • 可选:为维护窗口选择星期几时段

      如需了解详情,请参阅维护期

    安全性

    1. 可选:启用 Kerberos。

      1. 如需启用 Kerberos,请点击切换开关。
      2. 选择或输入您的 Secret 资源 ID。
      3. 选择使用最新的 Secret 版本,或者选择要使用的旧版本。
      4. 输入 Kerberos 主账号

        这是为此 Dataproc Metastore 服务分配的主账号。

      5. 浏览到 krb5 config 文件。

    2. 可选:选择加密类型。

      • 默认选定的选项是 Google 管理的加密密钥

      • 如需选择客户管理的密钥,请点击使用客户管理的加密密钥 (CMEK)

        如需了解详情,请参阅使用客户管理的加密密钥

    Metastore 配置替换

    • 可选:如要将映射应用于 Hive Metastore,请点击 + 添加替换

    辅助版本配置

    • 可选:如需添加辅助版本配置,请点击启用

      如需了解详情,请参阅辅助版本

    数据库类型

    • 可选:选择数据库类型。

      对于数据库类型,选择 MySQLSpanner。MySQL 是默认的数据库类型。

      如需详细了解如何选择特定的数据库类型,请参阅数据库类型

    标签

    • 可选:如需添加或移除用于描述元数据的可选标签,请点击 + 添加标签

启动服务

如需创建并启动该服务,请点击提交

您的新 Metastore 服务会显示在 Dataproc Metastore 页面上。在服务准备就绪之前,状态会显示为正在创建。准备就绪后,状态会变为有效。 预配服务可能需要几分钟时间。

gcloud CLI

  1. 如需创建元存储空间,请运行以下 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 Metastore
    • AUXILIARY_VERSION:可选:启用辅助版本。如需了解详情,请参阅辅助版本

    缩放设置

    • INSTANCE_SIZE:对于 Dataproc Metastore 2,为可选项:多区域 Dataproc Metastore 的实例大小。例如 smallmediumlarge。如果为 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

    • SUBNET1SUBNET2:可选:可以访问您的服务的子网列表。您可以使用子网的 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。
  2. 验证创建操作是否成功。

REST

按照 API 说明使用 APIs Explorer 创建服务

为 Dataproc Metastore 设置 Hive Metastore 配置替换项

如果您的 Apache Hive 仓库目录位于 Cloud Storage 上,您应设置 Metastore 配置替换项。此替换项会将您的自定义数据仓库设置为 Dataproc Metastore 服务的默认仓库目录。

在设置此替换项之前,请确保您的 Dataproc Metastore 服务具有访问仓库目录的对象读写权限。如需了解详情,请参阅 Hive 仓库目录

以下说明介绍了如何为新的 Dataproc Metastore 服务设置 Hive Metastore 配置替换项。

控制台

  1. 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:

    打开 Dataproc Metastore

  2. 在导航栏中,点击 +Create

  3. Metastore 配置替换项中,输入以下值:

    • hive.metastore.warehouse.dir
    • :仓库目录的 Cloud Storage 位置。 例如:gs://my-bucket/path/to/location
  4. 根据需要配置其余服务选项,或使用提供的默认值。

  5. 点击提交

    返回 Dataproc Metastore 页面,并确认您的服务是否已成功创建。

gcloud CLI

  1. 如需创建具有 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
  2. 验证创建操作是否成功。

创建具有自动扩缩功能的 Dataproc Metastore

Dataproc Metastore 2 支持自动扩缩。如果您启用自动扩缩功能,则可以设置最小扩缩因子和最大扩缩因子。设置此值后,您的服务会自动增加或减少运行工作负载所需的缩放系数。

自动扩缩注意事项

  • 自动伸缩和缩放比例是互斥的选项。例如,如果您开启了自动扩缩,则无法手动设置缩放比例或大小。
  • 自动扩缩仅适用于单区域 Dataproc Metastore 实例。
  • 启用自动伸缩功能后,系统会清除现有的缩放比例设置。
  • 停用自动扩缩功能后:
    • 系统会清除现有的自动扩缩设置。
    • 缩放比例设置为服务上配置的最后一个 autoscaling_factor
  • 自动扩缩因子的下限和上限是可选的。如果未设置,则默认值分别为 0.16

请选择以下任一标签页,了解如何创建启用了自动扩缩功能的 Dataproc Metastore 服务 2。

控制台

  1. 在 Google Cloud 控制台中,前往 Dataproc Metastore 页面。

    前往 Dataproc Metastore

  2. 在导航栏中,点击 +Create

    系统随即会打开创建 Metastore 服务对话框。

  3. 选择 Dataproc Metastore 2

  4. 价格和容量部分中,选择企业版 - 单个区域

  5. 实例大小下,点击启用自动扩缩

  6. 实例大小下,使用滑块选择实例大小下限和上限。

  7. 如需创建并启动该服务,请点击提交

    您的新 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"

排查常见问题

常见问题包括:

后续步骤