Comment soumettre une étincelle de travail sur une distance de maître nœud dans le fil en mode client?
J'ai besoin de soumettre étincelle apps/travaux sur une distance étincelle de cluster. J'ai actuellement étincelle sur ma machine et l'adresse IP du nœud maître en tant que fil-client. Btw, ma machine n'est pas dans le cluster.
- Je soumettre mon travail avec cette commande
./spark-submit --class SparkTest --deploy-mode client /home/vm/app.jar
- Je avoir l'adresse de mon maître codé en dur dans mon application sous la forme
val spark_master = spark://IP:7077
Et pourtant, tout ce que j'obtiens l'erreur est
16/06/06 03:04:34 INFO AppClient$ClientEndpoint: Connecting to master spark://IP:7077...
16/06/06 03:04:34 WARN AppClient$ClientEndpoint: Failed to connect to master IP:7077
java.io.IOException: Failed to connect to /IP:7077
at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:216)
at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:167)
at org.apache.spark.rpc.netty.NettyRpcEnv.createClient(NettyRpcEnv.scala:200)
at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:187)
at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:183)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused: /IP:7077
Ou plutôt si j'utilise
./spark-submit --class SparkTest --master yarn --deploy-mode client /home/vm/test.jar
- Je obtenir
Exception in thread "main" java.lang.Exception: When running with master 'yarn' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.
at org.apache.spark.deploy.SparkSubmitArguments.validateSubmitArguments(SparkSubmitArguments.scala:251)
at org.apache.spark.deploy.SparkSubmitArguments.validateArguments(SparkSubmitArguments.scala:228)
at org.apache.spark.deploy.SparkSubmitArguments.<init>(SparkSubmitArguments.scala:109)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:114)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Ai-je vraiment besoin d'avoir hadoop configuré en tant que bien dans mon poste de travail? Tout le travail sera fait à distance et cette machine ne fait pas partie de l'amas.
Je suis à l'aide de l'Étincelle 1.6.1.
OriginalL'auteur Mnemosyne | 2016-06-06
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, si vous êtes mise en
conf.setMaster(...)
à partir de votre code d'application, il prend la plus haute priorité (en plus de la --master argument). Si vous voulez exécuter dans le fil en mode client, ne pas utiliser de MASTER_IP:7077 dans le code de l'application. Vous devez fournir hadoop client fichiers de configuration de votre pilote de la façon suivante.Vous devez définir la variable d'environnement HADOOP_CONF_DIR ou YARN_CONF_DIR pour pointer vers le répertoire qui contient les configurations du client.
http://spark.apache.org/docs/latest/running-on-yarn.html
En fonction hadoop fonctionnalités que vous utilisez dans votre application spark, certains des fichiers de configuration sera utilisé pour la recherche de la configuration. Si vous êtes à l'aide de la ruche (par HiveContext spark-sql), il va chercher hive-site.xml. hdfs-site.xml sera utilisé pour la recherche de coordonnées pour NameNode de la lecture/écriture de SF de votre travail.
Vous n'avez pas besoin d'hadoop installé sur l'ordinateur client. Vous avez juste besoin client fichiers de configuration de cluster.
Donc, si je vous comprends bien ces fichiers sont générés dans le cluster et je viens de faire du cluster ou de quelqu'un qui a accès au cluster (c'est à dire je n'ai pas à les créer moi-même)? Je demande parce que le cluster n'est pas le mien et l'accès à la seule info que j'ai pour elle est l'adresse IP du maître, et c'était mentionnée comme un fil de client.
Vrai, par exemple dans cloudera de démarrage de la VM tous les hadoop fichiers de configuration sont dans /etc/hadoop/le répertoire conf. De même, cloudera de l'administration de la grappe de l'application mobile de cloudera manager " a une option de télécharger des fichiers de configuration de client comme une archive. D'autres distributions devraient aussi avoir des trucs similaires.
OriginalL'auteur Pranav Shukla