创建 Dataproc Metastore 服务

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

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

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

准备工作

所需的角色

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

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

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

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

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

使用默认设置创建 Dataproc Metastore

使用默认设置创建 Dataproc Metastore 为您的服务配置企业级、中等大小、 最新版本的 Hive Metastore、Trift 端点和数据位置 共 us-central 页。

Dataproc Metastore 2

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

控制台

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

    前往 Dataproc Metastore

  2. 在导航栏中,点击 +创建

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

  3. 选择 Dataproc Metastore 2

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

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

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

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

  6. 选择数据位置

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

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

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

    新的 Metastore 服务会显示在 Dataproc Metastore 上 页面。状态显示正在创建,直到服务可供使用。 处理完毕后,状态会更改为有效。 预配服务可能需要几分钟时间。

gcloud CLI

要使用 请运行以下 gcloud metastore services create 命令:

gcloud metastore services create SERVICE \
  --location=LOCATION \
  --instance-size=INSTANCE_SIZE \
  --scaling-factor=SCALING_FACTOR

替换以下内容:

  • SERVICE:新实例的名称 Dataproc Metastore 服务。
  • LOCATION:您所需的 Google Cloud 区域 来创建 Dataproc Metastore。您也可以设置默认位置

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

  • 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

以下说明介绍了如何创建 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

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

gcloud metastore services create SERVICE \
  --location=LOCATION

替换以下内容:

  • SERVICE:新实例的名称 Dataproc Metastore 服务。
  • LOCATION:您所需的 Google Cloud 区域 来创建 Dataproc Metastore。您也可以设置默认位置

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

REST

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

使用高级设置创建 Dataproc Metastore

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

Dataproc Metastore 2 或 1

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

控制台

开始

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

    打开 Dataproc Metastore

  2. 在导航菜单中,点击 +创建

    系统随即会打开创建 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 Port

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

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

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

    端点协议

    • 可选:选择端点协议。

      默认选定的选项是 Apache Thrift。更多信息 请参阅选择端点协议

    网络配置

    1. 选择网络配置

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

      更改默认广告联盟设置以完成 执行以下操作:

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

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

    4. 点击完成

    元数据集成

    维护时段

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

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

    安全性

    1. 可选:启用 Kerberos。

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

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

      5. 浏览到 krb5 config 文件。

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

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

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

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

    Metastore 配置替换

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

    辅助版本配置

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

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

    数据库类型

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

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

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

    标签

    • 可选:如需添加或移除描述元数据的可选标签,请执行以下操作: 点击 + 添加标签

启动服务

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

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

gcloud CLI

  1. 如需创建 Metastore,请运行以下 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 服务。 Dataproc Metastore 服务的名称。例如 0.1。 如果为 SCALING_FACTOR 指定了值,则请勿为 INSTANCE_SIZE 指定值。
    • LOCATION:您所需的 Google Cloud 区域 来创建 Dataproc Metastore。您也可以设置默认位置
    • PORT(可选):您的 旧货端点使用。如果未设置,系统会使用端口 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 服务具有访问仓库目录的对象读写权限。 如需了解详情,请参阅 Hive 仓库目录

以下说明介绍了如何设置 Hive Metastore 配置替换 。

控制台

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

    打开 Dataproc Metastore

  2. 在导航栏中,点击 +创建

  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:您所需的 Google Cloud 区域 来创建 Dataproc Metastore。您还可以设置 默认位置
    • CUSTOMER_DIR:Cloud Storage 存储分区的 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. 在导航栏中,点击 +创建

    系统随即会打开创建 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 网络。

要创建 Dataproc Metastore 服务,该服务配置了 共享 VPC,请参阅使用高级设置创建服务

注意事项

  • VPC 网络与 Dataproc Metastore 服务不相关 使用 gRPC 端点协议进行配置

  • 对于配置了 Thrift 端点的 Dataproc Metastore 服务 请确保您的 Dataproc Metastore 服务和 与其挂接到的 Dataproc 集群使用同一共享 VPC 。

  • 对于配置了 Thrift 端点的 Dataproc Metastore 服务 协议和 Private Service Connect 时,请务必使用子网 来自共享 VPC 网络的流量。

共享 VPC 网络所需的 IAM 角色

创建带有可访问 VPC 的 Dataproc Metastore 服务 位于属于其他项目的网络中 您必须将 roles/metastore.serviceAgent 授予服务项目的 Dataproc Metastore 服务代理 (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) (位于网络项目的 IAM 政策中)。

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"

排查常见问题

常见问题包括:

后续步骤