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.
- Konfigurieren Sie eine NAT-Lösung wie Cloud NAT.
- Privaten Google-Zugriff konfigurieren.
- Wenn Sie keine NAT-Lösung konfigurieren können, können Sie benutzerdefinierte Container verwenden, um Python-Pipelineabhängigkeiten anzubieten.
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.
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