创建 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. 在导航栏中,点击 +创建

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

  3. 选择 Dataproc Metastore 2

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

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

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

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

  6. 选择数据位置

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

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

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

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

gcloud CLI

如需使用提供的默认值创建 Dataproc Metastore 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. 在导航栏中,点击 +创建

    系统随即会打开创建 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:要在其中创建 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. 在导航菜单中,点击 +创建

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

  3. 选择您要使用的 Metastore 版本:Dataproc Metastore 1Dataproc Metastore 2

    服务信息

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

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

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

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

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

    3. 选择数据位置

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

    4. 选择 Hive Metastore 版本

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

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

    5. 选择发布版本

      如果未修改此值,您的 Metastore 将使用 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 版本,或选择使用较旧的版本。
      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:要在其中创建 Dataproc Metastore 的 Google Cloud 区域。您也可以设置默认位置
    • PORT(可选):Thrift 端点使用的 TCP 端口。如果未设置,系统会使用端口 9083。 如果您选择使用 gRPC 端点,则端口号会自动更改为 443
    • TIERDataproc 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. 在导航栏中,点击 +创建

  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. 在导航栏中,点击 +创建

    系统随即会打开创建 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 服务,您必须在该网络项目的 IAM 政策中向服务项目的 Dataproc Metastore 服务代理 (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) 授予 roles/metastore.serviceAgent

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 对等互连。在创建 Metastore 之前,请勿设置组织政策限制条件来限制 VPC 对等互连,否则 Metastore 创建会失败。如需详细了解如何设置正确的 VPC 配置,请参阅由于限制 VPC 对等互连的限制条件而导致服务创建失败

  • VPC 网络问题。创建 Metastore 时,您使用的 VPC 网络可能会耗尽 Dataproc Metastore 服务所需的可用 RFC 1918 地址。如需详细了解如何解决此问题,请参阅分配的 IP 范围已用尽

后续步骤