我一直在使用spark-submit
来测试多节点系统上的代码。
(当然,我将master选项指定为主服务器地址以实现多节点环境)。
但是,我想使用spark-shell来测试集群系统上的代码,而不是使用spark-submit
。但是,我不知道如何在spark-shell上配置多节点集群设置?
我认为只使用spark-shell而不更改任何设置将导致本地模式。
我尝试搜索信息并按照以下命令。
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 = org.apache.spark.sql.SQLContext@567a2954
但是,我确信我正在使用spark-shell为多节点群集设置做正确的行为。
答案 0 :(得分:2)
您是否尝试过--master
spark-shell
参数?对于Spark Standalone:
./spark-shell --master spark://master-ip:7077
Spark shell只是一个驱动程序,它将连接到您将在主参数
中编写的任何群集修改强>
使用YARN
./spark-shell --master yarn
答案 1 :(得分:1)
如果您使用setMaster("my server address"))
且“我的服务器地址”不是"local"
,那么它将无法在本地模式下运行。
可以在代码中设置主地址,但在生产中,您可以在CLI上将--master
参数设置为spark-shell
或spark-submit
您还可以编写单独的.scala
文件,并将其传递给spark-shell -i <filename>.scala