De base Étincelle exemple ne fonctionne pas
Je suis Étincelle d'apprentissage et voulait courir le plus simple possible cluster composé de deux machines physiques. J'ai fait toutes les configuration de base et il semble être très bien. La sortie du démarrage automatique de script se présente comme suit:
[username@localhost sbin]$ ./start-all.sh
starting org.apache.spark.deploy.master.Master, logging to /home/username/spark-1.6.0-bin-hadoop2.6/logs/spark-username-org.apache.spark.deploy.master.Master-1-localhost.out
localhost: starting org.apache.spark.deploy.worker.Worker, logging to /home/sername/spark-1.6.0-bin-hadoop2.6/logs/spark-username-org.apache.spark.deploy.worker.Worker-1-localhost.out
[email protected].???.??: starting org.apache.spark.deploy.worker.Worker, logging to /home/username/spark-1.6.0-bin-hadoop2.6/logs/spark-username-org.apache.spark.deploy.worker.Worker-1-localhost.localdomain.out
donc pas d'erreurs ici et il semble qu'un nœud Maître est en cours d'exécution ainsi que deux nœuds du Travailleur. Cependant quand j'ouvre l'interface WebGUI à 192.168.???.??:8080, il ne répertorie que l'un travailleur local. Mon problème est similaire à celui décrit ici: Spark Clusters: travailleur info n'apparaît pas sur l'INTERFACE web mais Il ne se passe rien dans mon fichier /etc/hosts. Tout ce qu'il contient est:
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
Ce qui me manque?
Les deux machines sont en cours d'exécution Fedora Workstation x86_64.
Pourriez-vous commencer avec une description de la configuration de votre réseau et l'ajout de logs? Aussi, si vous avez quelques détails utiles à ajouter juste modifier la question.
OK, donc le problème est maître de configuration. Depuis sa
/etc/hosts
fournit seulement localhost configuration de cette information est transmise au travailleur à distance. Il essaie de se connecter au maître sur localhost (ce qui est visible dans ses journaux) et, évidemment, échoue.Vous devez faire de votre maître accessibles à partir de la travailleur à distance et mise à jour de la configuration ou vous pouvez essayer de transmettre à tous les ports requis par ssh.
Soit confiure SPARK_MASTER_IP de sorte qu'il pointe vers un accès par un travailleur ou de fournir de l'entrée dans /etc/hosts qui correspond au nom d'hôte et accessible (pas localhost) IP. Cela devrait être suffisant.
OriginalL'auteur Krzysiek Setlak | 2016-02-16
Vous devez vous connecter pour publier un commentaire.
Fondamentalement la source des problèmes est que le maître de nom d'hôte décide de la
localhost
. Il est visible à la fois dans la console de sortie:où la dernière partie correspond au nom d'hôte. Vous pouvez voir le même comportement en master journal:
et travailleur à distance, les journaux:
Cela signifie que le travailleur distant tente d'accéder à un master sur
localhost
et, évidemment, échoue. Même si le travailleur a été en mesure de se connecter au maître, je ne travaille pas en sens inverse pour la même raison.Un moyen de remédier à ce problème:
OriginalL'auteur zero323
il semble que l'étincelle est très pointilleux sur IP et les noms de machine. ainsi, lors du démarrage de votre maître, il va utiliser le nom de votre ordinateur pour enregistrer étincelle maître.
si ce nom n'est pas accessible à partir de vos travailleurs, il sera presque impossible à atteindre.
une solution de contournement est de commencer votre maître comme ce
ensuite, vous serez en mesure de connecter vos esclaves comme ce
et là vous allez!
SPARK_MASTER_IP
est maintenant obsolète, nous devrions utiliserSPARK_MASTER_HOST
à la place.OriginalL'auteur dsncode
J'ai eu le même problème qui a été résolu en fournissant SPARK_MASTER_IP dans $SPARK_HOME/conf/spark-env.sh. spark-env.sh essentiellement définit une variable d'environnement SPARK_MASTER_IP qui pointe vers une adresse IP pour être attaché à Maîtriser. Alors start-master.sh lit cette variable et les liens de Maître. Maintenant SPARK_MASTER_IP est visible à l'extérieur de la zone où le Maître est en cours d'exécution.
OriginalL'auteur Salim