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

При клиентском запуске spark-shell эти параметры JVM драйвера поступают до разрешения зависимостей. Замените иллюстративную конечную точку и group:artifact:version нужными значениями, используя параметры, поддерживаемые установленной версией Spark. Имя хоста и порт Java — отдельные свойства. Для разрешённых загрузок публичных зависимостей список HTTP-прокси предлагает кандидатов для этих полей.

Используйте это размещение, когда --packages даёт сбой до того, как оболочка станет доступна. Код приложения, введённый позже, не может исправить более раннюю загрузку. Spark различает параметры запуска и программные настройки; в клиентском режиме JVM драйвера уже существует к моменту выполнения кода приложения.

Режим развёртывания тоже важен для spark.driver.extraJavaOptions: драйвер может работать на другой машине, которой нужен собственный путь к прокси. Более поздний запрос API исполнителя — это другой процесс и другое сетевое расположение; настройка исполнителей не обязательно настраивает разрешение при запуске.

Когда параметры запуска есть, но загрузка не удаётся

Следите за именем хоста репозитория, типом запроса и первой ошибкой. Метаданные и артефакты могут приходить с нескольких хостов. URL репозитория, совместимый с Maven, не доказывает, что Spark читает settings.xml, который использует успешная команда Maven.

Загрузчик Java должен поддерживать механизм прокси и требуемую аутентификацию. Свойства хоста/порта не покрывают все схемы, а выдуманное свойство http.proxyUsername не становится действенным только потому, что Java принимает это имя. Держите вместе конфигурацию до запуска и конкретную неудачную загрузку при диагностике этого этапа.

Похожие статьи