以这种方式连接spark集群:spark:// master:7707但是不是以spark-submit的方式提交任务而不是直接运行main方法,这是在spark集群上运行吗?
object SparkPi {
def main(args: Array[String]) {
val conf = new SparkConf()
.setAppName("Spark Pi")
.setMaster("spark://master:7707")
val spark = new SparkContext(conf)
val slices = if (args.length > 0) args(0).toInt else 2
val n = 100000 * slices
val count = spark.parallelize(1 to n, slices).map { i =>
val x = random * 2 - 1
val y = random * 2 - 1
if (x*x + y*y < 1) 1 else 0
}.reduce(_ + _)
println("Pi is roughly " + 4.0 * count / n)
spark.stop()
}
}
答案 0 :(得分:0)
使用java
命令直接执行此应用程序时,创建的进程将在客户端模式下运行Spark 驱动程序。
要在群集上运行,您必须使用spark-submit。
请注意,它只是在执行此main方法的机器上运行的驱动程序。作业将在工作集群上运行,计算将在那里进行(除非您的主服务器设置为local
,否则在示例代码中不是这样)