2016-04-01 10 views
1

Ich habe kürzlich einen Spark-Cluster auf Amazon EMR mit 1 Master und 2 Slaves eingerichtet.Ausführen eines Spark-Jobs mit Spark-Submit über den gesamten Cluster

Ich kann pyspark ausführen und Aufträge mit spark-submit übergeben.

Allerdings, wenn ich einen eigenständigen Auftrag erstellen, wie job.py, erstelle ich ein SparkContext, etwa so:

sc=SparkContext("local", "App Name") 

Dies scheint nicht richtig, aber ich bin nicht sicher, was dort zu setzen.

Wenn ich den Job einreiche, bin ich sicher, dass er nicht den gesamten Cluster nutzt.

Wenn ich einen Job gegen meinen gesamten Cluster ausgeführt werden soll, sagen vier Prozesse pro Slave, was muss ich zu

a.) Übergeben als Argumente an spark-submit

b.) Übergeben als Argumente an SparkContext() im Skript selbst.

Antwort

2

Sie Funken Kontext

mit erstellen
conf = SparkConf().setAppName(appName) 
sc = SparkContext(conf=conf) 

und Sie haben das Programm spark-submit mit dem folgenden Befehl für die Funkenstandalone-Cluster

./bin/spark-submit --master spark://<sparkMasterIP>:7077 code.py 

Für Mesos Cluster einreichen

./bin/spark-submit --master mesos://207.184.161.138:7077 code.py 

Für YARN-Cluster

./bin/spark-submit --master yarn --deploy-mode cluster code.py 

Für YARN-Master würde die Konfiguration von HADOOP_CONF_DIR gelesen werden.