Je lance Spark en mode autonome sur mon serveur distant en suivant les étapes suivantes:

  • cp spark-env.sh.template spark-env.sh
  • ajouter à spark-env.sh SPARK_MASTER_HOST=IP_OF_MY_REMOTE_SERVER
  • et exécutez les commandes suivantes pour le mode autonome: sbin/start-master.sh sbin/start-slave.sh spark://IP_OF_MY_REMOTE_SERVER:7077

Et j'essaye de me connecter au maître distant:

val spark = SparkSession.builder()
  .appName("SparkSample")
  .master("spark://IP_OF_MY_REMOTE_SERVER:7077")
  .getOrCreate()

Et je reçois les erreurs suivantes:

ERROR SparkContext: Error initializing SparkContext.
java.net.BindException: Cannot assign requested address: Service 'sparkDriver' failed after 16 retries!

Et avertissements:

    WARN Utils: Service 'sparkMaster' could not bind on port 7077. Attempting port 7078.
.....
    WARN Utils: Service 'sparkMaster' could not bind on port 7092. Attempting port 7092.
13
pacman 15 août 2017 à 23:08

2 réponses

La documentation Spark dit

spark.driver.port

(random)    Port for the driver to listen on. This is used for communicating with the executors and the standalone Master.

spark.port.maxRetries

16  Maximum number of retries when binding to a port before giving up. When a port is given a specific value (non 0), each subsequent retry will increment the port used in the previous attempt by 1 before retrying. This essentially allows it to try a range of ports from the start port specified to port + maxRetries.

Vous devez vous assurer que Spark Master s'exécute sur l'hôte distant au port 7077. Le pare-feu doit également autoriser les connexions à celui-ci.

ET

En outre, vous devez copier le fichier core-site.xml de votre cluster vers HADOOP_CONF_DIR, afin que le service Spark puisse lire les paramètres hadoop, tels que l'adresse IP de votre maître. Lisez ici pour en savoir plus.

J'espère que cela aide!

1
nitinr708 21 août 2017 à 13:03

Le Spark-jobserver semble très tentant mais a quelques problèmes. Je recommanderais l'API REST d'étincelle "cachée"! Ce n'est pas documenté mais c'est super facile et beaucoup plus confortable, Contrairement à jobserver qui nécessite une maintenance (une autre chose dont vous devez vous soucier et dépanner - et il a ses problèmes) Vous avez également une excellente bibliothèque pour cela - https://github.com/ywilkof/spark-jobs-rest-client

1
Danny Mor 28 août 2017 à 09:12