spark-shell --driver-java-options "-Dhttp.proxyHost=proxy.example -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.example -Dhttps.proxyPort=8080" --packages group:artifact:version

Bei einem clientseitigen Start von spark-shell kommen diese JVM-Optionen des Treibers vor der Abhängigkeitsauflösung an. Ersetzen Sie den beispielhaften Endpunkt und group:artifact:version durch die vorgesehenen Werte, indem Sie Optionen verwenden, die die installierte Spark-Version unterstützt. Java-Hostname und -Port sind getrennte Eigenschaften. Für erlaubte öffentliche Abhängigkeitsdownloads bietet die HTTP-Proxy-Liste Kandidaten für diese Felder.

Verwenden Sie diese Platzierung, wenn --packages fehlschlägt, bevor die Shell verfügbar wird. Danach eingegebener Anwendungscode kann den früheren Download nicht reparieren. Spark unterscheidet Startoptionen von programmatischen Einstellungen; im Client-Modus existiert die Treiber-JVM bereits, wenn Anwendungscode läuft.

Auch der Bereitstellungsmodus ist für spark.driver.extraJavaOptions wichtig: Der Treiber kann auf einer anderen Maschine laufen, die ihren eigenen Weg zum Proxy braucht. Die spätere API-Anfrage eines Executors ist ein anderer Prozess und ein anderer Netzwerkort; Executors zu konfigurieren konfiguriert nicht zwangsläufig die Startauflösung.

Wenn Startoptionen vorhanden sind, der Download aber fehlschlägt

Folgen Sie dem Hostnamen des Repositorys, dem Anfragetyp und dem ersten Fehler. Metadaten und Artefakte können von mehreren Hosts kommen. Eine Maven-kompatible Repository-URL belegt nicht, dass Spark die settings.xml liest, die ein erfolgreicher Maven-Befehl verwendet.

Der Java-Downloader muss den Proxy-Mechanismus und die erforderliche Authentifizierung unterstützen. Host/Port-Eigenschaften decken nicht jedes Schema ab, und eine erfundene http.proxyUsername-Eigenschaft wird nicht wirksam, nur weil Java den Namen akzeptiert. Halten Sie die Startkonfiguration und den konkreten fehlgeschlagenen Download bei der Diagnose dieser Phase zusammen.

Ähnliche Artikel