有没有办法在Spark shell中运行示例(SparkPi)?或通过shell提交Spark作业到Mesos集群?spark-submit
目前不支持部署到Mesos,但我希望实现这样的功能,将驱动程序放置在执行程序中。
有没有办法在Spark shell中运行示例(SparkPi)?或通过shell提交Spark作业到Mesos集群?spark-submit
目前不支持部署到Mesos,但我希望实现这样的功能,将驱动程序放置在执行程序中。
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 Context(而spark-shell已经创建了一个 - 这将导致问题)。
val conf = new SparkConf().setAppName("Spark Pi")
val spark = new SparkContext(conf)
Spark 2.0 中的实现尝试重用现有的 Spark Context: 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