问题排查

本页面介绍了各种错误场景以及解决这些错误的问题排查步骤。

连接和网络错误场景

如果服务遇到连接或网络问题,请检查本部分中的场景,看看是否是某个原因导致了问题。

由于存在限制条件来限制 VPC 对等互连,因此服务创建失败

请勿设置组织政策限制条件来限制 VPC 对等互连。如果指定 constraints/compute.restrictVpcPeering,则您的创建请求将失败并显示 INVALID_ARGUMENT 错误。如果您必须设置限制条件,请使用以下命令允许 under:folders/270204312590

gcloud resource-manager org-policies allow compute.restrictVpcPeering under:folders/270204312590 --organization ORGANIZATION_ID

如需了解详情,请参阅组织政策限制条件

如果不存在服务帐号,则跨项目部署会失败

如需创建 Cloud Storage Metastore 服务,并且此网络所属服务所属的项目不属于该服务所属的项目,根据网络项目的 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"

如需了解详情,请参阅设置跨项目部署

网络连接需要专用 IP

Dataproc Metastore 仅使用专用 IP,因此没有公开 IP。这意味着只有提供的 Virtual Private Cloud (VPC) 网络中或本地(通过 Cloud VPN 或 Cloud Interconnect 连接)的虚拟机才能访问 Dataproc Metastore 服务。

如需了解详情,请参阅访问服务

共享 VPC 网络中预配的资源导致连接错误

如果您的 Dataproc Metastore 服务使用属于其他项目的网络,并且 Compute Engine 受服务边界保护,则 Metastore 项目和网络项目必须位于同一边界中。

要将现有 Dataproc Metastore 项目添加到边界,请按照更新服务边界中的说明操作。

如需了解详情,请参阅将 VPC Service Controls 与 Dataproc Metastore 搭配使用

已用完分配的 IP 范围

提供的 VPC 网络可能会耗尽 Dataproc Metastore 服务所需的可用 RFC 1918 地址。如果发生这种情况,Dataproc Metastore 会尝试保留 RFC 1918 范围之外的专用 IP 地址范围,以便创建服务。如需查看支持的非 RFC 1918 专用范围列表,请参阅 VPC 网络文档中的有效范围

Dataproc Metastore 中使用的非 RFC 1918 专用 IP 地址可能会与连接到提供 VPC 网络的本地网络中的范围冲突。如需检查 Dataproc Metastore 预留的 RFC 1918 和非 RFC 1918 专用 IP 地址列表:

gcloud compute addresses list \
    --project NETWORK_PROJECT_ID \
    --filter="purpose:VPC_PEERING AND name ~ cluster|resourcegroup"

如果确定了冲突,无法通过重新配置本地网络缓解冲突,请删除违规的 Dataproc Metastore 服务,并在 2 小时后重新创建它。

如需了解详情,请参阅 IP 地址范围用尽

操作超时错误场景

以下错误场景会导致服务无响应或操作超时。

使用审核日志来排查操作超时问题

如需排查服务操作超时问题,您可以使用 Cloud Console 中的“日志浏览器”来检索 Cloud 项目的审核日志条目。

在“查询构建器”窗格中,选择已审核的资源audited_resource 作为 Google Cloud 资源类型,后跟 Dataproc Metastoremetastore.googleapis.com 作为服务。选取方法是可选操作。

如需了解详情,请参阅查看日志

导入和导出错误场景

本部分概述了在使用 Dataproc Metastore 的导入和导出时可能会遇到的一些常见问题。

导入因 Hive 版本不匹配而失败

导入元数据时,Hive Metastore 和 Dataproc Metastore 版本必须兼容。如果两者不匹配,导入可能会失败。如需了解详情,请参阅版本政策

导入因缺少 Hive 表文件而失败

为 Avro 准备导入操作时,每个 Hive 表都应该有一个文件(即使表为空),否则导入将会失败。

服务代理或用户没有适当的权限

Dataproc Metastore 服务代理 (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) 以及导入元数据的用户必须拥有用于导入的 Cloud Storage 存储分区的读取权限。

  • 对于 MySQL,他们必须拥有用于导入的 Cloud Storage 对象(SQL 转储文件)的 storage.objects.get 权限。

  • 对于 Avro,他们必须拥有用于导入的 Cloud Storage 存储分区的 storage.objects.get 权限。

对于导出操作,Dataproc Metastore 服务代理 (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) 以及创建导出操作的用户必须拥有存储分区的 storage.objects.create 权限。

作业因数据库文件过大而失败

如果数据库文件过大,可能需要超过一小时的作业超时限制才能完成导入或导出过程。

备份和恢复错误场景

本部分概述了在使用 Dataproc Metastore 的备份和恢复时可能会遇到的一些常见问题。

无法为服务创建新的备份

如果服务中已有 7 个备份,则必须先手动删除一个备份,然后才能创建新备份。您可以从备份/还原标签页删除现有备份。

用户没有适当的权限

要备份元数据,您必须具有包含 metastore.backups.create IAM 权限的 IAM 角色。

如需恢复元数据,您必须具有包含 metastore.services.restoremetastore.backups.use IAM 权限的 IAM 角色。

作业因服务元数据文件过大而失败

如果服务元数据文件过大,则完成备份或恢复过程可能需要超过一小时的作业超时限制

排查 gcloud 命令行工具的问题

如果您遇到 gcloud 工具命令不可用的问题,或者该命令的行为与其记录方式不同,请尝试更新 gcloud SDK:

gcloud components update