Dataflow-Netzwerkprobleme beheben .

Auf dieser Seite wird beschrieben, wie Sie Probleme mit dem Dataflow-Netzwerk beheben.

Weitere Informationen zum Konfigurieren des Netzwerks für Ihre Dataflow-Jobs finden Sie unter Internetzugriff und Firewallregeln konfigurieren und Netzwerk und Subnetzwerk angeben.

Netzwerkschnittstelle muss ein Subnetz angeben, wenn sich die Netzwerkressource im benutzerdefinierten Subnetzmodus befindet

Der folgende Fehler tritt auf, wenn Sie einen Dataflow-Job ausführen:

Workflow failed. Causes: Invalid Error: Message: Invalid value for field
'resource.properties.networkInterfaces[0].subnetwork': ''. Network interface
must specify a subnet if the network resource is in custom subnet mode. HTTP
Code: 400

Dieses Problem tritt auf, wenn das VPC-Netzwerk mit dem Namen default von einem VPC-Netzwerk im automatischen Modus in einen benutzerdefinierten VPC-Netzwerk-Modus umgewandelt wird.

Um dieses Problem zu beheben, geben Sie den Subnetzwerkparameter an, wenn Sie ein benutzerdefiniertes Modus-VPC-Netzwerk verwenden. Weitere Informationen finden Sie unter Netzwerk und Subnetzwerk angeben.

PoolableConnectionFactory kann nicht erstellt werden

Der folgende Fehler tritt auf, wenn Ihr Dataflow-Job eine Verbindung zu einer externen Datenbank herstellen muss:

java.sql.SQLException: Cannot create PoolableConnectionFactory
(The connection attempt failed.)

Dieses Problem tritt auf, wenn der Dataflow-Worker keine Verbindung zum Datenbankserver herstellen kann, oft aufgrund einer Regel für ausgehenden Traffic oder einer Firewall.

Um die Ursache dieses Problems zu finden, erstellen Sie Konnektivitätstests und führen sie aus. Mit den Konnektivitätstests können Sie feststellen, wo der Traffic blockiert wird.

Informationen zum Aktualisieren der Regeln für ausgehenden Traffic finden Sie unter Beispiel für eine Firewallregel für ausgehenden Traffic

Projektübergreifende Verweise sind für diese Ressource nicht zulässig

Der folgende Fehler tritt auf, wenn Sie einen Dataflow-Job für ein freigegebenes VPC-Netzwerk ausführen:

Invalid value for field 'resource.properties.networkInterfaces[0].subnetwork':
'https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNETWORK'.
Cross-project references for this resource are not allowed.

Dieses Problem tritt auf, wenn Sie ein Subnetzwerk in einem freigegebenen VPC-Netzwerk angeben, das Dienstprojekt jedoch nicht an das freigegebene VPC-Hostprojekt angehängt ist.

Um dieses Problem zu beheben, muss ein Administrator für freigegebene VPCs das Dienstprojekt an das Hostprojekt anhängen.

Die Instanz muss sich in derselben Region wie das Subnetz befinden.

Der folgende Fehler tritt auf, wenn Sie einen Dataflow-Job mit einem angegebenen Unternetzwerk ausführen:

Failed to start the VM, launcher-ID, used for launching because of status code: INVALID_ARGUMENT, reason: Invalid Error:
Message: Invalid value for field 'resource.networkInterfaces[0].subnetwork': 'https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNETWORK'. Instance must be in the same region as the subnetwork.
HTTP Code: 400.

Dieses Problem tritt auf, wenn sich Ihr Job und das in Ihrem Job angegebene Subnetz in verschiedenen Regionen befinden.

Um dieses Problem zu beheben, führen Sie den Job in der Region aus, in der sich Ihr Subnetz befindet. Wenn sich Ihr Subnetz beispielsweise in us-central1 befindet, führen Sie den Job in der Region us-central1 aus.

Netzwerk ist nicht erreichbar

Der folgende Fehler tritt auf, wenn öffentliche IP-Adressen deaktiviert sind und versuchen, einen Dataflow-Job auszuführen:

NewConnectionError(''<pip._vendor.urllib3.connection.HTTPSConnection  object at ID>:
Failed to establish a new connection: [Errno 101] Network is unreachable

Dieses Problem tritt auf, weil Ihre Pipelinekonfiguration keine Verbindungen zu externen IP-Adressen zulässt, Ihre Pipeline jedoch zur Ausführung eine Verbindung zu einer externen IP-Adresse herstellen muss. Mit den folgenden Pipelineoptionen werden externe IP-Verbindungen deaktiviert:

Java

--usePublicIps=false

Python

--no_use_public_ips=true

Go

--no_use_public_ips=true

API

options = PipelineOptions(use_public_ips=False)

Um herauszufinden, wo der Traffic blockiert ist, erstellen Sie Konnektivitätstests und führen sie aus.

Nehmen Sie eine oder mehrere der folgenden Änderungen vor, um dieses Problem zu beheben, ohne Verbindungen zu externen IP-Adressen zuzulassen.

Weitere Informationen zum Konfigurieren des Internetzugriffs für Dataflow finden Sie unter Internetzugriff für Dataflow

Netzwerk oder Subnetzwerk ist für das Dataflow-Dienstkonto nicht zugänglich oder existiert nicht

Einer der folgenden Fehler tritt auf, wenn Sie versuchen, einen Dataflow-Job auszuführen. Der Job schlägt fehl.

Workflow failed. Causes: Network default is not accessible to Dataflow Service
account or does not exist
Workflow failed. Causes: Subnetwork SUBNETWORK is not
accessible to Dataflow Service account or does not exist

Das Problem kann folgende Ursachen haben:

  • Sie lassen beim Erstellen des Dataflow-Jobs die Subnetzwerk- und Netzwerkparameter weg, aber ein VPC-Netzwerk im automatischen Modus namens default ist in Ihrem Projekt nicht vorhanden. Möglicherweise haben Sie kein Standardnetzwerk, wenn das Standardnetzwerk gelöscht wurde oder wenn eine Einschränkung der Organisationsrichtlinie das Erstellen eines Standardnetzwerks verhindert.
  • Das Subnetzwerk fehlt.
  • Der Subnetzwerkparameter wurde falsch angegeben.
  • Die erforderlichen Berechtigungen für das Dataflow-Dienstkonto fehlen.
  • Wenn Sie eine freigegebene VPC verwenden, muss der Wert für das Hostprojekt das Projekt sein, in dem die VPC gehostet wird. Weitere Informationen über Shared VPC finden Sie in der Shared VPC-Übersicht.

So beheben Sie das Problem: Richtlinien zum Angeben eines Netzwerks und Subnetzwerks.

Beim RPC ist eine Zeitüberschreitung aufgetreten oder es konnte keine Verbindung über die Ports 12345 oder 12346 hergestellt werden.

Einer der folgenden Fehler tritt auf, wenn Sie einen Dataflow-Job ausführen, der weder Streaming Engine noch Dataflow Shuffle verwendet. Der Job bleibt hängen oder schlägt fehl.

Für Streamingjobs:

Rpc to WORKER_HARNESS:12345 completed with error
UNAVAILABLE: failed to connect to all addresses; last error : UNKNOWN:
ipv4:WORKER_IP_ADDRESS:12345: Failed to connect to remote
host: FD Shutdown

Für Batchjobs:

(g)RPC timed out when SOURCE_WORKER_HARNESS talking to
DESTINATION_WORKER_HARNESS:12346.

Dieses Problem tritt auf, wenn eine Firewallregel fehlt, die Netzwerktraffic über die TCP-Ports 12345 und 12346 zulässt. Wenn der Job mehrere Worker verwendet, können die Worker nicht miteinander kommunizieren.

Informationen zur Behebung dieses Problems finden Sie in den Schritten zur Fehlerbehebung unter DEADLINE_EXCEEDED oder Server reagiert nicht.

Einzelner Worker wird wiederholt gestartet und beendet

Das folgende Problem tritt auf, wenn Sie einen Dataflow-Job starten. Auf der Seite Jobmesswerte des Dataflow-Jobs wird im Diagramm CPU-Auslastung (alle Worker) angezeigt, dass ein Worker wiederholt gestartet und dann nach ein paar Minuten beendet wird. Es ist jeweils nur ein Worker verfügbar.

Diagramm zur CPU-Auslastung, das zeigt, dass jeweils ein Worker wiederholt erstellt und dann beendet wird

Folgender Fehler tritt auf:

The Dataflow job appears to be stuck because no worker activity has been seen
in the last 1h. Please check the worker logs in Stackdriver Logging.

Es werden keine Worker-Logs erstellt.

In den Joblogs können mehrere Meldungen wie diese angezeigt werden:

Autoscaling: Raised the number of workers to 1 based on the rate of progress in
the currently running stage(s).

Dieses Problem tritt auf, wenn das VPC-Netzwerk keine Standardroute zum Internet und keine Standardroute zum Subnetzwerk hat.

So beheben Sie das Problem: Standardrouten zu Ihrem VPC-Netzwerk hinzufügen. Weitere Informationen finden Sie unter Internetzugriff für Dataflow

Subnetzwerk hat keinen privaten Google-Zugriff

Der folgende Fehler tritt auf, wenn Sie einen Dataflow-Job starten, in dem externe IP-Adressen deaktiviert sind:

Workflow failed. Causes: Subnetwork SUBNETWORK on project
PROJECT_ID network NETWORK in
region REGION does not have Private Google Access, which
is required for usage of private IP addresses by the Dataflow workers.

Dieses Problem tritt auf, wenn Sie externe IP-Adressen deaktivieren, ohne den privaten Google-Zugriff zu aktivieren.

So beheben Sie das Problem: privaten Google-Zugriff für das Subnetzwerk, das der Dataflow-Job verwendet, aktivieren.

Dataflow kann nicht mit einem angegebenen IP-Bereich erstellt werden

Dataflow unterstützt das Zuweisen eines statischen IP-Bereichs zu den Worker-VMs nicht. Um das Problem zu umgehen, können Sie ein Subnetzwerk mit einer bestimmten IP-Adressbereich erstellen und den Dataflow-Job in dem Subnetzwerk bereitstellen.

Weitere Informationen zur Verwendung von Subnetzwerken mit Dataflow finden Sie unter Netzwerk und Subnetzwerk angeben

Informationen zum Konfigurieren von IP-Bereichen in Subnetzwerken finden Sie unter Alias-IP-Bereiche konfigurieren

Informationen zum Ausführen der Pipeline im Subnetzwerk finden Sie unter Führen Sie Ihre Pipeline mit dem angegebenen Subnetzwerk aus.

Möglicherweise müssen Sie auch eine NAT-Regel und einen Router erstellen. Weitere Informationen siehe Cloud NAT.

Nächste Schritte

Weitere Schritte zur Fehlerbehebung bei Netzwerken finden Sie unter Fehler bei der internen Verbindung zwischen VMs beheben