Existe-t-il la possibilité d'exécuter le cluster autonome Spark localement sur une seule machine (ce qui est fondamentalement différent du simple développement de travaux localement (c'est-à-dire local[*]
)) ?.
Jusqu'à présent, j'exécute 2 machines virtuelles différentes pour créer un cluster, et si je pouvais exécuter un cluster autonome sur la même machine, ayant par exemple trois JVM différentes en cours d'exécution?
Quelque chose comme avoir plusieurs adresses de bouclage pourrait-il faire l'affaire?
oui vous pouvez le faire, lancez un nœud maître et un nœud de travail et vous êtes prêt à partir
lancer le maître
./sbin/start-master.sh
lancer le travailleur
./bin/spark-class org.Apache.spark.deploy.worker.Worker spark://localhost:7077 -c 1 -m 512M
exécuter l'exemple SparkPi
./bin/spark-submit --class org.Apache.spark.examples.SparkPi --master spark://localhost:7077 lib/spark-examples-1.2.1-hadoop2.4.0.jar
Une petite mise à jour comme pour la dernière version (la 2.1.0), la valeur par défaut est de lier le maître au nom d'hôte, donc lors du démarrage local d'un travailleur, utilisez la sortie de hostname
:
./bin/spark-class org.Apache.spark.deploy.worker.Worker spark://`hostname`:7077 -c 1 -m 512M
Et pour exécuter un exemple, exécutez simplement la commande suivante:
bin/run-example SparkPi
Si vous ne trouvez pas le ./sbin/start-master.sh
fichier sur votre machine, vous pouvez également démarrer le maître avec
./bin/spark-class org.Apache.spark.deploy.master.Master