如何在spark-shell上运行多节点?

时间:2017-02-01 07:00:12

标签: apache-spark

我一直在使用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为多节点群集设置做正确的行为。

2 个答案:

答案 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-shellspark-submit

您还可以编写单独的.scala文件,并将其传递给spark-shell -i <filename>.scala