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 roles/metastore.serviceAgent Dataproc Metastore-Dienst-Agent (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) des Dienstprojekts in der IAM-Richtlinie des Netzwerkprojekts die Rolle 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.

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 zum Zulassen von eingehendem 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 Dienst ein Netzwerk 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.

Eine Anleitung zum Hinzufügen vorhandener Dataproc Metastore-Projekte zum Perimeter finden Sie 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 mehr genügend RFC 1918-Adressen verfügbar, die von Dataproc Metastore-Diensten benötigt werden. In diesem Fall versucht Dataproc Metastore, private IP-Adressbereiche außerhalb der RFC 1918-Bereiche für die Dienst-Erstellung zu reservieren. Eine Liste der unterstützten privaten Bereiche außerhalb von RFC 1918 finden Sie unter Gültige Bereiche in der Dokumentation zu VPC-Netzwerk.

Private IP-Adressen außerhalb von RFC 1918, die 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 privaten IP-Adressen außerhalb von RFC 1918 und RFC 1918 auf, die von Dataproc Metastore reserviert wurden:

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 Query Builder als Ressourcentyp Audited Resource oder audited_resource und als Dienst Dataproc Metastore oder metastore.googleapis.com aus. Google Cloud Die Auswahl einer Methode ist optional.

Weitere Informationen finden Sie unter Logs ansehen.

Dienst nicht verfügbar

Dataproc Metastore-Dienste können aus verschiedenen Gründen nicht mehr verfügbar sein und Fehler verursachen. Häufige Ursachen sind eine hohe CPU-Auslastung oder Fehler aufgrund von zu wenig Arbeitsspeicher.

Das Problem kann durch eine hohe Last oder viele Tabellen und Partitionen verursacht werden, die abgefragt werden. Um dieses Problem zu vermeiden, empfehlen wir die Verwendung der Stufe Enterprise. Diese bietet flexible Skalierbarkeit, Fehlertoleranz und Hochverfügbarkeit in mehreren Zonen und kann auch mit hohen Arbeitslasten umgehen.

Wenn Sie Fehler aufgrund von zu wenig Arbeitsspeicher beheben möchten, verwenden Sie den Log-Explorer in der Google Cloud Console, um die Audit-Logeinträge für Ihr Cloud Projekt abzurufen.

  1. Klicken Sie im Log-Explorer auf Query Builder.
  2. Wählen Sie die folgenden Filter aus:
    • Ressourcentyp: metastore.googleapis.com/Services
    • Schweregrad: ERROR
    • Keyword: OutofMemoryError

Weitere Informationen finden Sie unter Logs ansehen.

Fehlerszenarien beim Import und Export

In diesem Abschnitt werden häufige Probleme beim Import und Export von Dataproc Metastore beschrieben.

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

Beim Importieren von Metadaten müssen die Hive-Metastore- und Dataproc Metastore-Versionen kompatibel sein. Wenn die beiden Versionen nicht übereinstimmen, schlägt der Import möglicherweise fehl.

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

In Cloud Logging können Sie prüfen, 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.

Dienst-Agent 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, weil 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 Zeitlimits von drei Stunden für den Job 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 bei der Sicherung und Wiederherstellung 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.

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.

Fehlerszenarien für Managed Service for Apache Spark-Cluster

In den folgenden Abschnitten werden häufige Probleme mit Managed Service for Apache Spark und selbstverwalteten Clustern beschrieben.

Anhängen von Managed Service for Apache Spark-Clustern schlägt aufgrund von Versionsunterschieden fehl

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

Weitere Informationen finden Sie unter Liste der Managed Service for Apache Spark-Imageversionen.

Erstellung von Managed Service for Apache Spark-Clustern schlägt aufgrund unzureichender Rollen fehl

Beim Erstellen eines Managed Service for Apache Spark-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.

Dies kann auftreten, wenn Sie versuchen, einen Managed Service for Apache Spark-Cluster zu erstellen und an Ihren Dataproc Metastore anzuhängen.

Weisen Sie Ihrem Dienstkonto die Rolle roles/dataproc.worker zu, um dieses Problem zu beheben. Im folgenden Beispiel wird anhand einiger Beispielwerte veranschaulicht, wie Sie das tun.

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 Managed Service for Apache Spark 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