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

Przy starcie spark-shell po stronie klienta te opcje JVM sterownika trafiają przed rozstrzygnięciem zależności. Zastąp przykładowy punkt końcowy i group:artifact:version zamierzonymi wartościami, używając opcji obsługiwanych przez zainstalowaną wersję Sparka. Nazwa hosta Java i port to osobne właściwości. Dla dozwolonych publicznych pobrań zależności listy proxy HTTP oferuje kandydatów do tych pól.

Użyj tego umieszczenia, gdy --packages zawodzi, zanim powłoka stanie się dostępna. Kod aplikacji wprowadzony później nie naprawi wcześniejszego pobrania. Spark odróżnia opcje startowe od ustawień programistycznych; w trybie klienta JVM sterownika istnieje już, gdy działa kod aplikacji.

Tryb wdrażania ma też znaczenie dla spark.driver.extraJavaOptions: sterownik może działać na innej maszynie, która potrzebuje własnej ścieżki do proxy. Późniejsze żądanie API executora to inny proces i inne miejsce w sieci; konfiguracja executorów niekoniecznie konfiguruje rozstrzyganie przy starcie.

Gdy opcje startowe są obecne, ale pobieranie zawodzi

Śledź nazwę hosta repozytorium, typ żądania i pierwszy błąd. Metadane i artefakty mogą pochodzić z kilku hostów. Adres URL repozytorium zgodnego z Mavenem nie dowodzi, że Spark czyta settings.xml używany przez udane polecenie Maven.

Pobieracz Java musi obsługiwać mechanizm proxy i wymagane uwierzytelnianie. Właściwości hosta/portu nie zapewniają każdego schematu, a wymyślona właściwość http.proxyUsername nie staje się skuteczna tylko dlatego, że Java akceptuje nazwę. Podczas diagnozowania tego etapu trzymaj razem konfigurację sprzed startu i konkretne nieudane pobranie.

Powiązane artykuły