【发布时间】:2015-09-03 09:44:52
【问题描述】:
我们正在尝试制作一个包含一个小的 scala 源文件和大量依赖项的 fat jar 文件(使用 spark 和 cassandra 的简单 mapreduce 示例):
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import com.datastax.spark.connector._
import org.apache.spark.SparkConf
object VMProcessProject {
def main(args: Array[String]) {
val conf = new SparkConf()
.set("spark.cassandra.connection.host", "127.0.0.1")
.set("spark.executor.extraClassPath", "C:\\Users\\SNCUser\\dataquest\\ScalaProjects\\lib\\spark-cassandra-connector-assembly-1.3.0-M2-SNAPSHOT.jar")
println("got config")
val sc = new SparkContext("spark://US-L15-0027:7077", "test", conf)
println("Got spark context")
val rdd = sc.cassandraTable("test_ks", "test_col")
println("Got RDDs")
println(rdd.count())
val newRDD = rdd.map(x => 1)
val count1 = newRDD.reduce((x, y) => x + y)
}
}
我们没有 build.sbt 文件,而是将 jars 放入 lib 文件夹和 src/main/scala 目录中的源文件并使用 sbt run 运行。我们的 assembly.sbt 文件如下所示:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")
当我们运行 sbt 程序集时,我们会收到以下错误消息:
...
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: java heap space
at java.util.concurrent...
我们不确定如何更改 jvm 设置以增加内存,因为我们使用 sbt 程序集来制作 jar。此外,如果我们编写代码或构建项目的方式出现严重错误,这也会对我们有很大帮助;尝试建立一个基本的 spark 程序有很多令人头疼的问题!
【问题讨论】:
标签: jar cassandra apache-spark sbt