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.

Der multiregionale Dataproc Metastore-Dienst konnte nicht erstellt werden

Beim Erstellen eines multiregionalen Dataproc Metastore-Dienstes wird möglicherweise der folgende Fehler angezeigt:

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 jedoch nicht die richtigen Berechtigungen gewährt haben.

Zum Beheben dieses Fehlers müssen Sie dem Dataproc-Dienstkonto, das in Ihrem Dataproc Metastore-Projekt enthalten ist, 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 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 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 außerhalb von RFC 1918 finden Sie in der Dokumentation zu VPC-Netzwerk unter Gültige Bereiche.} 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.

Folgen Sie der Anleitung unter Dienstperimeter aktualisieren, um dem Perimeter vorhandene Dataproc Metastore-Projekte hinzuzufügen.

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

Der zugewiesene IP-Bereich ist ausgeschöpft

Im angegebenen VPC-Netzwerk stehen möglicherweise nicht alle verfügbaren RFC 1918-Adressen zur Verfügung, 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 Dokumentation zum 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 prüfen Sie die Liste der von Dataproc Metastore reservierten privaten IP-Adressen nach RFC 1918 und außerhalb von RFC 1918:

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 Ausschöpfung des IP-Adressbereichs.

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 bei Zeitüberschreitungen bei Dienstvorgängen beheben möchten, verwenden Sie den Log-Explorer in der Google Cloud Console, um Ihre Audit-Logeinträge für Ihr Cloud-Projekt abzurufen.

Wählen Sie im Bereich „Query Builder“ die Option Geprüfte Ressource oder audited_resource als Google Cloud-Ressourcentyp und dann Dataproc Metastore oder metastore.googleapis.com als Dienst 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 in Dataproc Metastore beschrieben.

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

Beim Importieren von Metadaten müssen die Hive-Metastore- und Dataproc Metastore-Version kompatibel sein. Der Import kann fehlschlagen, wenn die beiden nicht übereinstimmen.

Weitere Informationen zur Kompatibilität finden Sie unter 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.

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 die Datenbankdatei zu groß ist, kann der Import- oder Exportvorgang länger als das Zeitlimit für Jobs dauern. Wenn der Import nicht innerhalb des Zeitlimits von drei Stunden abgeschlossen werden kann, können Sie die 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

Zum Sichern von Metadaten müssen Sie eine IAM-Rolle mit der IAM-Berechtigung metastore.backups.create anfordern.

Zum Wiederherstellen von Metadaten 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.

Dataproc-Clusteranhang schlägt aufgrund nicht übereinstimmender Versionen fehl

Wenn Sie einen Dataproc-Cluster anhängen, müssen das Dataproc-Image und die Hive-Version von Dataproc Metastore kompatibel sein. Prüfen Sie die folgenden Seiten zur Image-Versionierung, um sicherzustellen, dass 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 können aufgrund unzureichender Rollen nicht erstellt werden

Beim Erstellen eines Dataproc-Clusters schlägt das Erstellen fehl und die folgende Fehlermeldung wird angezeigt:

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 Dataproc-Cluster zu erstellen und an Ihren Dataproc Metastore anzuhängen.

Gewähren Sie Ihrem Dienstkonto die roles/dataproc.worker, um dieses Problem zu beheben. Das folgende Beispiel zeigt anhand einiger Beispielwerte, wie dies geht.

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

Die 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 sich der Befehl anders verhält, als er dokumentiert ist, aktualisieren Sie die gcloud CLI:

gcloud components update

Nächste Schritte