Fehlerbehebung

Auf dieser Seite werden verschiedene Fehlerszenarien und Schritte zur Fehlerbehebung erläutert.

Szenarien für Konnektivitäts- und Netzwerkfehler

Wenn bei Ihrem Dienst Verbindungs- oder Netzwerkprobleme auftreten, prüfen Sie die Szenarien in den folgenden Abschnitten, um festzustellen, ob eines davon die Ursache des Problems ist.

Erstellung von Diensten schlägt fehl, da VPC-Peering eingeschränkt wird

Legen Sie die Organisationsrichtlinien-Einschränkung für das VPC-Peering nicht fest. Wenn Sie constraints/compute.restrictVpcPeering angeben, schlägt die Erstellungsanfrage mit einem INVALID_ARGUMENT-Fehler fehl. Wenn Sie die Einschränkung festlegen müssen, verwenden Sie folgenden Befehl, um under:folders/270204312590 zuzulassen:

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

Weitere Informationen finden Sie unter Einschränkungen für Organisationsrichtlinien.

Die projektübergreifende Bereitstellung schlägt eventuell fehl, wenn das Dienstkonto nicht vorhanden ist

Um einen Dataproc Metastore-Dienst zu erstellen, auf den in einem Netzwerk zugegriffen werden kann, das zu einem anderen Projekt gehört als dem, zu dem der Dienst gehört, müssen Sie dem Dataproc Metastore-Dienst-Agent (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) des Dienstprojekts roles/metastore.serviceAgent in der IAM-Richtlinie des Netzwerkprojekts zuweisen.

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"

Weitere Informationen finden Sie unter Projektübergreifende Bereitstellung einrichten.

Mehrere Regionen für Dataproc Metastore-Dienst können nicht erstellt werden

Beim Erstellen eines mehrregionalen Dataproc Metastore-Dienstes kann der folgende Fehler auftreten:

The Dataproc Service Agent does not have permission to GET Dataproc Metastore service
'projects/<dpmsproject>/locations/nam7/services/<service>'. If using a service from the
cluster's project, please ensure the service agent has the Cloud IAM role
'roles/dataproc.serviceAgent'. Please see
https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-
principals#service_agent_control_plane_identity for information on the Dataproc Service
Agent, and https://cloud.google.com/iam/docs/granting-changing-revoking-access#granting-
gcloud-manual for information on granting access.

Dieser Fehler tritt auf, wenn sich Ihr Dataproc-Cluster in einem anderen Projekt als Ihr Dataproc Metastore befindet, Sie Ihrem Projekt aber nicht die richtigen Berechtigungen erteilt haben.

Um diesen Fehler zu beheben, müssen Sie dem Dataproc-Dienstkonto in Ihrem Dataproc Metastore-Projekt die Berechtigung metastore.services.get erteilen.

Eine private IP-Adresse ist für die Netzwerkverbindung erforderlich

Dataproc Metastore verwendet nur private IP-Adressen, es werden also keine öffentlichen IP-Adressen preisgegeben. Das bedeutet, dass nur VMs im bereitgestellten VPC-Netzwerk (Virtual Private Cloud) oder lokal (über Cloud VPN oder Cloud Interconnect) auf den Dataproc Metastore-Dienst zugreifen können.

Weitere Informationen finden Sie unter Dienstzugriff.

Erforderliche Firewallregel für eingehenden Traffic für Kerberos

Kerberos erfordert Dataproc Metastore, um Verbindungen zu Hosts in Ihrem Projektnetzwerk zu initiieren. Sie müssen eine Firewallregel erstellen, die eingehenden TCP- und UDP-Traffic an allen Ports aus dem IP-Block /17 zulässt, der die IP-Adresse des Dataproc Metastores enthält.

Weitere Informationen finden Sie unter Firewallregeln auf Ihrem KDC und Firewallregeln für Ihre Dienste.

Verbindungsfehler aufgrund von Ressourcen, die in freigegebene VPC-Netzwerken bereitgestellt werden

Wenn Ihr Dataproc Metastore In diesem Fall versucht Dataproc Metastore, private IP-Adressbereiche außerhalb der RFC 1918-Bereiche für die Diensterstellung zu reservieren. Eine Liste der unterstützten privaten Bereiche, die nicht RFC 1918 entsprechen, finden Sie unter Gültige Bereiche in der VPC-Netzwerkdokumentation.} verwendet, das zu einem anderen Projekt gehört, und Compute Engine durch den Dienstperimeter geschützt ist, müssen sich das Metastore-Projekt und das Netzwerkprojekt im selben Perimeter befinden.

Wenn Sie dem Perimeter vorhandene Dataproc Metastore-Projekte hinzufügen möchten, folgen Sie der Anleitung unter Dienstperimeter aktualisieren.

Weitere Informationen finden Sie unter VPC Service Controls mit Dataproc Metastore.

Der zugewiesene IP-Bereich ist ausgeschöpft

Im bereitgestellten VPC-Netzwerk sind möglicherweise nicht genügend RFC 1918-Adressen verfügbar, die für Dataproc Metastore-Dienste erforderlich sind. In diesem Fall versucht Dataproc Metastore, private IP-Adressbereiche außerhalb der RFC 1918-Bereiche für die Diensterstellung zu reservieren. Eine Liste der unterstützten privaten Bereiche außerhalb von RFC 1918 finden Sie unter Gültige Bereiche in der VPC-Netzwerkdokumentation.

Private IP-Adressen, die nicht RFC 1918 entsprechen und in Dataproc Metastore verwendet werden, können mit einem Bereich in einem lokalen Netzwerk in Konflikt stehen, das mit dem bereitgestellten VPC-Netzwerk verbunden ist. So rufen Sie die Liste der von Dataproc Metastore reservierten privaten IP-Adressen nach RFC 1918 und außerhalb von RFC 1918 auf:

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

Wird ein Konflikt festgestellt, der nicht durch eine Neukonfiguration des lokalen Netzwerks behoben werden kann, löschen Sie den fehlerhaften Dataproc Metastore-Dienst und erstellen ihn nach zwei Stunden neu.

Weitere Informationen finden Sie unter IP-Adressbereich ausgeschöpft.

Fehlerszenarien für die Zeitüberschreitung beim Vorgang

Folgende Fehlerszenarien führen zu Zeitüberschreitungen bei Diensten oder Vorgängen.

Audit-Logs zur Fehlerbehebung bei Vorgangszeitüberschreitungen verwenden

Wenn Sie Fehler wegen Zeitüberschreitungen bei Dienstvorgängen beheben möchten, verwenden Sie den Log-Explorer in der Google Cloud Console, um die Audit-Logeinträge für Ihr Cloud-Projekt abzurufen.

Wählen Sie im Bereich „Abfragebaustein“ als Google Cloud-Ressourcentyp Geprüfte Ressource oder audited_resource und als Dienst Dataproc Metastore oder metastore.googleapis.com aus. Die Auswahl einer Methode ist optional.

Weitere Informationen finden Sie unter Logs ansehen.

Fehlerszenarien beim Import und Export

In diesem Abschnitt werden häufige Probleme beim Importieren und Exportieren von Dataproc Metastore beschrieben.

Import schlägt fehl, da die Hive-Versionen nicht übereinstimmen

Beim Importieren von Metadaten müssen die Hive-Metastore- und Dataproc Metastore-Versionen kompatibel sein. Andernfalls kann der Import fehlschlagen.

Weitere Informationen zur Kompatibilität finden Sie in der Versionsrichtlinie.

Sie können in Cloud Logging nachsehen, ob dieser Fehler aufgetreten ist. Die folgende Meldung ist ein Beispiel für diesen Fehler.

Metastore schema version is not compatible. Hive Version: 3.1.0, Database Schema Version: 2.3.0

Import schlägt fehl, da Hive-Tabellendateien fehlen

Beim Vorbereiten des Imports für Avro sollte pro Hive-Tabelle eine Datei vorhanden sein, auch wenn die Tabelle leer ist. Andernfalls schlägt der Import fehl.

Sie können das Dataproc Metastore Toolkit als Referenz nutzen, um die korrekten Hive-Metadatenschemas zu prüfen.

Der Kundenservicemitarbeiter oder Nutzer hat nicht die erforderlichen Berechtigungen

Der Dataproc Metastore-Dienst-Agent (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) und der Nutzer, der die Metadaten importiert, müssen folgende Leseberechtigung für den zum Import verwendeten Cloud Storage-Bucket haben:

  • Für MySQL benötigen sie die storage.objects.get-Berechtigung für das für den Import verwendete Cloud Storage-Objekt (SQL-Dumpdatei).

  • Für Avro benötigen sie die storage.objects.get-Berechtigung für den Cloud Storage-Bucket, der für den Import verwendet wird.

Bei Exporten müssen der Dataproc Metastore-Dienst-Agent (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) und der Nutzer, der den Export erstellt, die storage.objects.create-Berechtigung für den Bucket haben.

Job schlägt fehl, da die Datenbankdatei zu groß ist

Wenn Ihre Datenbankdatei zu groß ist, kann es länger als das Zeitlimit des Jobs dauern, bis der Import- oder Exportvorgang abgeschlossen ist. Wenn der Import nicht innerhalb des Job-Zeitlimits von drei Stunden abgeschlossen werden kann, können Sie Ihre Metadaten auf mehrere Dataproc Metastore-Instanzen aufteilen.

Fehlerszenarien bei der Sicherung und Wiederherstellung

In diesem Abschnitt werden häufige Probleme beim Sichern und Wiederherstellen von Dataproc Metastore beschrieben.

Für einen Dienst kann kein neues Back-up erstellt werden

Wenn für einen Dienst bereits sieben Back-ups vorhanden sind, müssen Sie zuerst ein Back-up manuell löschen, bevor Sie eine neue erstellen. Sie können vorhandene Back-ups über den Tab Back-up/Wiederherstellung löschen.

Der Nutzer hat nicht die erforderlichen Berechtigungen

Wenn Sie Metadaten sichern möchten, müssen Sie eine IAM-Rolle mit der IAM-Berechtigung metastore.backups.create anfordern.

Wenn Sie Metadaten wiederherstellen möchten, müssen Sie eine IAM-Rolle mit den IAM-Berechtigungen metastore.services.restore und metastore.backups.use anfordern.

Job schlägt fehl, da die Metadatendatei des Dienstes zu groß ist

Wenn Ihre Dienst-Metadaten-Datei zu groß ist, kann es mehr als das Zeitlimit des Jobs von einer Stunde dauern, bis der Sicherungs- oder Wiederherstellungsprozess abgeschlossen ist.

Dataproc-Cluster-Fehlerszenarien

In den folgenden Abschnitten werden häufige Probleme mit Dataproc und selbstverwalteten Clustern beschrieben.

Anhängen an Dataproc-Cluster schlägt aufgrund nicht übereinstimmender Versionen fehl

Wenn Sie einen Dataproc-Cluster anhängen, müssen das Dataproc-Image und die Dataproc Metastore Hive-Version kompatibel sein. Prüfen Sie auf den folgenden Seiten zur Bildversionierung, ob die Hive-Version kompatibel ist:

  • Dataproc-Releaseversionen 2.0.x
  • Dataproc-Releaseversionen 1.5.x
  • Dataproc-Releaseversionen 1.4.x

Weitere Informationen finden Sie in der Liste der Dataproc-Image-Versionen.

Dataproc-Cluster kann aufgrund unzureichender Rollen nicht erstellt werden

Beim Erstellen eines Dataproc-Clusters schlägt die Clustererstellung mit der folgenden Fehlermeldung fehl:

gcloud.dataproc.clusters.create) INVALID_ARGUMENT: Default Service Account '**********-compute@developer.gserviceaccount.com' is missing required permissions: [dataproc.agents.create, dataproc.agents.delete, dataproc.agents.get, dataproc.agents.update, dataproc.tasks.lease, dataproc.tasks.listInvalidatedLeases, dataproc.tasks.reportStatus]. Service Accounts must have either 'Dataproc/Dataproc Worker' role or all permissions granted by the role.

Das kann passieren, wenn Sie versuchen, einen Dataproc-Cluster zu erstellen und an Ihren Dataproc Metastore anzuhängen.

Um dieses Problem zu beheben, weisen Sie Ihrem Dienstkonto die Rolle roles/dataproc.worker zu. Im folgenden Beispiel wird dies anhand einiger Beispielwerte veranschaulicht.

gcloud projects add-iam-policy-binding my_project \
    --member=219315-compute@developer.gserviceaccount.com \
    --role=roles/dataproc.worker

Verbindung zu Metastore schlägt aufgrund von Zeitzonenproblemen fehl

Ihre Hive-Datei gibt den Fehler The server time zone value 'CDT' is unrecognized or represents more than one time zone zurück.

Wenn Sie von Dataproc keine Verbindung zu Ihrem Metastore herstellen können, müssen Sie den aktuellen Cluster löschen und den Befehl gcloud dataproc clusters create oder das Automatisierungstool aktualisieren, um den folgenden Zeitzonenparameter aufzunehmen:

--metadata "hive-metastore-uri=jdbc:mysql://10.207.26.77:3306/hive_metastore?serverTimezone=CST6CDT"

Probleme mit der Google Cloud CLI beheben

Wenn ein Problem auftritt, bei dem ein gcloud CLI-Befehl nicht verfügbar ist oder wenn sich der Befehl anders verhält, als er dokumentiert ist, versuchen Sie, die gcloud CLI zu aktualisieren:

gcloud components update

Nächste Schritte