Donnez son proxy au résolveur de paquets de spark-shell au lancement
Fournissez les propriétés de proxy JVM du driver avant la résolution de --packages ; le code du shell et les réglages d'exécuteur ultérieurs peuvent manquer ce téléchargement.
spark-shell --driver-java-options "-Dhttp.proxyHost=proxy.example -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.example -Dhttps.proxyPort=8080" --packages group:artifact:versionLors d'un lancement de spark-shell côté client, ces options JVM du driver arrivent avant la résolution des dépendances. Remplacez le point de terminaison illustratif et group:artifact:version par les valeurs voulues en utilisant des options prises en charge par la version de Spark installée. Le nom d'hôte et le port Java sont des propriétés distinctes. Pour les téléchargements publics de dépendances autorisés, la liste de proxys HTTP propose des candidats pour ces champs.
Employez cet emplacement lorsque --packages échoue avant que le shell soit disponible. Le code applicatif saisi ensuite ne peut pas réparer le téléchargement antérieur. Spark distingue les options de lancement des réglages programmatiques ; en mode client, la JVM du driver existe déjà lorsque le code applicatif s'exécute.
Le mode de déploiement compte aussi pour spark.driver.extraJavaOptions : le driver peut s'exécuter sur une autre machine, qui a besoin de son propre chemin vers le proxy. La requête API ultérieure d'un exécuteur est un autre processus et un autre emplacement réseau ; configurer les exécuteurs ne configure pas forcément la résolution au démarrage.
Quand les options de lancement sont présentes mais que le téléchargement échoue
Suivez le nom d'hôte du dépôt, le type de requête et la première erreur. Les métadonnées et les artefacts peuvent venir de plusieurs hôtes. Une URL de dépôt compatible Maven ne prouve pas que Spark lit le settings.xml utilisé par une commande Maven réussie.
Le téléchargeur Java doit prendre en charge le mécanisme de proxy et l'authentification requise. Les propriétés hôte/port ne couvrent pas tous les schémas, et une propriété http.proxyUsername inventée ne devient pas effective simplement parce que Java accepte le nom. Gardez ensemble la configuration d'avant lancement et le téléchargement échoué précis lors du diagnostic de cette étape.