3

有什么方法可以从 Spark shell 运行示例(SparkPi)?或者通过 shell 向 Mesos 集群提交 Spark 作业?目前spark-submit不支持部署到 Mesos,但我希望实现类似的目标,将驱动程序也放置到执行程序。

4

1 回答 1

0

1) 您可以将 spark-shell 和 spark-submit 连接到 Mesos 集群:

./bin/spark-shell -h

Usage: ./bin/spark-shell [options]
Options:
  --master MASTER_URL         spark://host:port, mesos://host:port,     yarn, or local.
  --deploy-mode DEPLOY_MODE   Whether to launch the driver program locally ("client") or
                          on one of the worker machines inside the cluster ("cluster")
                          (Default: client).
...

2) 有什么方法可以从 Spark shell 运行示例(SparkPi)?

简而言之 - 是的。但它可能只适用于 Spark 2.0。

Spark 1.6 中 SparkPi 示例的实现尝试创建新的 Spark 上下文(虽然 spark-shell 已经创建了一个 - 它会导致问题)。

https://github.com/apache/spark/blob/branch-1.6/examples/src/main/scala/org/apache/spark/examples/SparkPi.scala

val conf = new SparkConf().setAppName("Spark Pi")
val spark = new SparkContext(conf)

Spark 2.0 中的实现尝试重用现有的 Spark 上下文: https ://github.com/apache/spark/blob/branch-2.0/examples/src/main/scala/org/apache/spark/examples/SparkPi.scala

val spark = SparkSession
  .builder
  .appName("Spark Pi")
  .getOrCreate()

那么如何从 shell 启动 SparkPi?你去:

./bin/spark-shell --jars ./examples/jars/spark-examples_2.11-2.0.0.jar 
scala> org.apache.spark.examples.SparkPi.main(Array("100"))
Pi is roughly 3.1413147141314712                              
于 2016-09-03T08:36:05.063 回答