2017-02-01 1 views
0

Ich habe spark-submit verwendet, um meine Codes auf dem Multi-Knoten-System zu testen. (Natürlich habe ich die Master-Option als Master-Server-Adresse angegeben, um eine Umgebung mit mehreren Knoten zu erreichen). Anstatt jedoch spark-submit zu verwenden, möchte ich Spark-Shell verwenden, um meine Codes auf dem Cluster-System zu testen. Wie kann ich Cluster-Einstellungen für mehrere Knoten auf der Spark-Shell konfigurieren?Wie man Multi-Knoten auf der Spark-Shell ausführen?

Ich denke, dass nur die Verwendung von Spark-Shell ohne Änderung der Einstellungen im lokalen Modus führt.

Ich habe versucht, die Informationen zu suchen und folgte den folgenden Befehlen.

scala> sc.stop() 
... 

scala> import org.apache.spark.{SparkContext, SparkConf} 
import org.apache.spark.{SparkContext, SparkConf} 

scala> val sc = new SparkContext(new SparkConf().setAppName("shell").setMaster("my server address")) 
... 

scala> import org.apache.spark.sql.SQLContext 
import org.apache.spark.sql.SQLContext 

scala> val sqlContext = new SQLContext(sc) 
sqlContext: org.apache.spark.sql.SQLContext = [email protected] 

Aber ich bin mir ziemlich sicher, dass ich richtiges Verhalten für das Multi-Node-Cluster-Setup unter Verwendung von Funken Shell tue.

Antwort

2

Haben Sie versucht --master Parameter von spark-shell? Für Spark Standalone: ​​

./spark-shell --master spark://master-ip:7077 

Spark-Shell nur ein Fahrer ist, wird es in jedem Cluster verbinden Sie im Master-Parameter

bearbeiten schreiben wird:

für GARN Verwendung

./spark-shell --master yarn 
1

Wenn Sie setMaster("my server address")) verwendet haben und "meine Serveradresse" nicht "local" lautet, wird es nicht lokal ausgeführt Modus.

Es ist in Ordnung, die Master-Adresse im Code zu setzen, aber in der Produktion, dann würden Sie --master Parameter auf dem CLI spark-shell oder spark-submit

Sie können auch eine separate .scala Datei schreiben gesetzt, und übergeben, das zu spark-shell -i <filename>.scala

Verwandte Themen