【问题标题】:How to to run spark cluster on ec2 from sbt?如何从 sbt 在 ec2 上运行 spark 集群?
【发布时间】:2013-12-13 15:26:49
【问题描述】:

我有一个用 scala 编写的程序,使用 spark,当我使用 sbt run 启动它时,它在本地运行良好

我希望能够使用 sbt 在亚马逊的 ec2 集群上运行它。 这可能吗?如何实现?

我看过http://spark.incubator.apache.org/docs/latest/ec2-scripts.html,但似乎没有 sbt。

我的 sbt 版本:

~/git-reps/cs262a $ sbt --version
sbt launcher version 0.12.4

我的build.sbt 文件:

name := "Ensemble Bayes Tree"

version := "1.0"

scalaVersion := "2.9.3"

libraryDependencies ++= Seq(
 "org.apache.spark" %% "spark-core" % "0.8.0-incubating",
 "org.apache.spark" % "spark-mllib_2.9.3" % "0.8.0-incubating",
 "org.slf4j" % "slf4j-api" % "1.6.4",
 "org.slf4j" % "slf4j-log4j12" % "1.7.5",
 "log4j" % "log4j" % "1.2.14",
 "org.eclipse.jetty.orbit" % "javax.servlet" % "2.5.0.v201103041518" artifacts Artifact("javax.servlet", "jar", "jar")
)

resolvers += "Akka Repository" at "http://repo.akka.io/releases/"

【问题讨论】:

    标签: scala amazon-web-services amazon-ec2 sbt apache-spark


    【解决方案1】:

    启动 EC2 集群后,您可以将代码复制到集群的主节点,使用 ssh 登录到主节点,然后在该机器上运行 sbt(例如,AMP Camp 3 exercises 就是这样工作的)。

    确保在驱动程序中创建 SparkContext 时传递 Spark master 的地址。我会 source /root/spark/conf/spark-env.sh 设置 $MASTER 环境变量,然后在我的驱动程序中读取该变量。 master的地址也存储在/root/spark-ec2/cluster-url中。

    Sourcing spark-env.sh 还将设置一些环境变量,用于根据集群节点的大小配置 Spark 作业的内存使用情况。如果您不获取此文件,请确保在驱动程序中设置spark.executor.memory Java 系统属性,以充分利用集群的内存。

    【讨论】:

    • 感谢您清除该方法。 ampCamp 网页似乎是一个可靠的资源!
    猜你喜欢
    • 2017-02-25
    • 2020-10-31
    • 2016-03-28
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 2015-09-03
    相关资源
    最近更新 更多