2016-06-06 23 views
8

Ho bisogno di inviare app/lavori con scintilla su un cluster di accensione remoto. Al momento ho acceso la mia macchina e l'indirizzo IP del nodo principale come filato-client. Btw la mia macchina non è nel cluster. presento il mio lavoro con questo comandoCome inviare un lavoro spark su un nodo master remoto nella modalità client filato?

./spark-submit --class SparkTest --deploy-mode client /home/vm/app.jar 

Ho l'indirizzo del mio padrone insita nel mio app in forma

val spark_master = spark://IP:7077 

Eppure tutto quello che ottiene è l'errore

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 

O invece se uso

./spark-submit --class SparkTest --master yarn --deploy-mode client /home/vm/test.jar 

ottengo

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) 

ne ho veramente bisogno di avere Hadoop configurato come bene nel mio posto di lavoro? Tutto il lavoro verrà svolto in remoto e questa macchina non fa parte del cluster. Sto usando Spark 1.6.1.

risposta

12

Prima di tutto, se si imposta conf.setMaster(...) dal codice dell'applicazione, richiede la precedenza più alta (sopra l'argomento --master). Se si desidera eseguire in modalità client filato, non utilizzare MASTER_IP: 7077 nel codice dell'applicazione. Si dovrebbero fornire i file di configurazione del client hadoop al proprio driver nel modo seguente.

È necessario impostare la variabile di ambiente HADOOP_CONF_DIR o YARN_CONF_DIR in modo che punti alla directory che contiene le configurazioni del client.

http://spark.apache.org/docs/latest/running-on-yarn.html

A seconda del Hadoop caratteristiche si utilizza nell'applicazione scintilla, alcuni dei file di configurazione saranno utilizzati per ricerca di configurazione. Se stai usando hive (tramite HiveContext in spark-sql), cercherà hive-site.xml. hdfs-site.xml sarà usato per cercare le coordinate per la lettura/scrittura di NameNode su HDFS dal tuo lavoro.

+0

Per impostare Hadoop_conf_dir è necessario installare hadoop anche nel mio computer client o semplicemente importare questi file di configurazione dal cluster/master? – Mnemosyne

+0

Non hai bisogno di hadoop installato sul computer client. Hai solo bisogno di file di configurazione del client dal cluster. –

+0

Quindi, se ho capito bene questi file sono generati nel cluster e devo solo ottenerli dal cluster o da qualcuno che ha accesso al cluster (cioè non devo generarli da solo)? Ti sto chiedendo perché il cluster non è mio e le uniche informazioni di accesso che ho ricevuto erano l'IP del master e si chiamava filato-client. – Mnemosyne

Problemi correlati