Cluster Spark Standalone - Esclave ne se connectant pas au maître
J'essaye de configurer une Étincelle autonome de cluster à la suite de la documentation officielle.
Mon maître est sur un local vm sous ubuntu et j'ai aussi un travailleur en cours d'exécution dans la même machine. Il se connecte et je suis capable de voir son statut dans l'interface utilisateur web du maître.
Voici le WebUi image -
Mais quand j'essaie de connecter un esclave à partir d'une autre machine, je ne suis pas en mesure de le faire.
C'est le journal de message que je reçois dans le travailleur, quand j'ai commencer à partir d'une autre machine.
J'ai essayé d'utiliser start-slaves.sh
du maître après la mise à jour conf\esclaves et aussi start-slave.sh spark://spark:7077
de l'esclave.
[Maître de nom d'hôte de l'étincelle; Travailleur hostanme - travailleur]
15/07/01 11:54:16 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@spark:7077] has failed, address is now gated for [5000] ms. Reason is: [Association failed with [akka.tcp://sparkMaster@spark:7077]].
15/07/01 11:54:59 ERROR Worker: All masters are unresponsive! Giving up.
15/07/01 11:54:59 INFO Utils: Shutdown hook called
Quand j'essaie de telnet à partir de l'esclave au maître, c'est ce que je reçois -
root@worker:~# telnet spark 7077
Trying 10.xx.xx.xx...
Connected to spark.
Escape character is '^]'.
Connection closed by foreign host.
Telnet semble fonctionner, mais la connexion est fermée dès qu'il est établi. Cela pourrait-il avoir quelque chose à voir avec le problème ?
J'ai ajouté le maître et l'esclave des adresses IP dans /etc/hosts sur les deux machines.
J'ai suivi toutes les solutions données à SPARK + Autonome Cluster: Impossible de démarrer le travailleur à partir d'une autre machine
mais ils n'ont pas fonctionné pour moi.
J'ai la configuration suivante définie dans spark-env.sh dans les deux machines -
exportation SPARK_MASTER_IP=étincelle
exportation SPARK_WORKER_PORT=44444
Toute aide est grandement appréciée.
source d'informationauteur Mor Eru
Vous devez vous connecter pour publier un commentaire.
Je rencontre exactement le même problème que vous et de comprendre comment le faire fonctionner.
Le problème, c'est que votre spark master est à écouter sur le nom d'hôte, dans votre exemple étincellequi provoquent des travailleurs sur le même hôte d'être en mesure de s'inscrire avec succès, mais a échoué à partir d'une autre machine avec la commande
start-slave.sh spark://spark:7077
.La solution est de s'assurer que la valeur SPARK_MASTER_IP est spécifié avec l'ip dans le fichier conf/spark-env.sh
sur le nœud maître, et de commencer votre étincelle maître comme d'habitude. Vous pouvez ouvrir votre interface utilisateur web pour vous assurer que votre spark master est apparu comme étincelle://YOUR_HOST_IP:7077 après le départ. Puis, sur une autre machine avec la commande
start-slave.sh spark://<your host ip>:7077
doit démarrer et s'inscrire travailleur à maîtriser avec succès.
Espère que ça vous aidera, en
Sa dépend de votre spark version, il a besoin de différents conf.
si votre étincelle de la version 1.6 ajoutez cette ligne à
conf/spark-env.sh
donc une autre machine peut se connecter à maîtreet si votre spark version est 2.x ajouter ces lignes dans votre
conf/spark-env.sh
après l'ajout de ces lignes fonctionnent étincelle :
et si vous le faites à droite , vous pouvez voir dans
<your_host_ip>:8080
cette étincelle maître url est:spark://<your_host_ip>:7077
BeCarefule your_host_ip ,ne devrait pas être
localhost
et Il doit être exactementYour host ip
que vous définissez dansconf/spark-env.sh
après tout, vous pouvez vous connecter à une autre machine pour le master avec la commande ci-dessous:
Je viens de me lancer à mon propre étincelle de cluster avec la version 2.10. La façon dont j'ai résolu mon problème est le suivant: