创建 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、Thrif 端点和 us-central 的数据位置。

Dataproc Metastore 2

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

控制台

  1. 在 Google Cloud 控制台中,转到 Dataproc Metastore 页面。

    转到 Dataproc Metastore

  2. 点击导航栏中的 +创建

    此时会打开 Create Metastore service 对话框。

  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 Explorer,按照 API 说明创建服务

Dataproc Metastore 1

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

控制台

  1. 在 Google Cloud 控制台中,转到 Dataproc Metastore 页面。

    转到 Dataproc Metastore

  2. 点击导航栏中的 +创建

    此时会打开 Create Metastore service 对话框。

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

    此时会打开 Create Metastore service 对话框。

  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 端口

      您的 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 子网中访问,然后选择“子网”。您最多可以指定五个子网。

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

    此时会打开 Create Metastore service 对话框。

  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 角色

如需创建 Dataproc Metastore 服务,使其具有可在属于其他项目的网络中访问的 VPC,您必须在该网络项目的 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 范围已用尽

后续步骤