当前位置: 首页 > 知识库问答 >
问题:

OutofMemoryErrory使用sbt程序集创建fat jar

穆旭尧
2023-03-14
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)

    }
}
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")

当我们运行sbt assembly时,我们会得到以下错误消息:

...
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: java heap space
    at java.util.concurrent...

我们不确定如何更改jvm设置来增加内存,因为我们使用sbt程序集来制作JAR。此外,如果我们在编写代码或构建项目时出现了一些非常严重的错误,这也会对我们有很大帮助;尝试建立一个基本的星火计划有那么多令人头疼的事情!

共有1个答案

叶谦
2023-03-14

sbt本质上是一个java进程。您可以尝试针对OutOfMemory问题调整sbt运行时堆大小。

对于0.13.x,sbt使用的默认内存选项是

-xms1024m-xmx1024m-xx:reservedcodecachesize=128m-xx:maxpermsize=256m

sbt -J-Xms2048m -J-Xmx2048m assembly
 类似资料:
  • sbt版本为0.13。9和scala 2.11。7/我知道以前版本的sbt依赖于scala 2.10-仍然是这样吗?我有一个Java项目,为它添加了一个程序集。项目目录中的sbt文件(根据本版本sbt组件的sbt组件说明): 我运行了sbt重新加载/清理以及编译。但是,当我尝试运行程序集时,会出现以下异常: 在使用sbt为我的java项目创建可运行的jar之前,我遗漏了什么步骤? 如果需要的话,我

  • 我正在使用gatling工具进行性能测试。我的加特林代码运行得很好。我在我的项目中使用intellij IDEA。我正在尝试创建一个jar文件。它无法创建。我认为这是sbt的问题。请有人纠正我的体形。sbt文件位于此处: 当我尝试使用sbt命令sbt“it:assembly”创建jar文件时,它显示以下错误 我的sbt版本是0.13.16,scala版本是2.11.8。请有人帮我解决这个错误。提前

  • [错误]不是有效的项目ID:程序集 [错误]应为“:”(如果选择配置) [错误]不是有效的键:程序集

  • 问题内容: 我有一个具有 名称,类型和年龄* 的 User 类,然后这些用户的一长串就是我的输入。 * 我试图以此为基础创建一组所有唯一用户,但是问题是我也希望根据 年龄 对他们进行排序。我目前使用过- 如何同时对这个集合排序,有什么想法吗? 问题答案: 在非排序集中谈论顺序是没有意义的。如果您想要按年龄排序的套装,则应该使用类似的方法。 如果上面的代码对您来说很丑陋,您也可以将当前的用户集添加到

  • Ember CLI,Ember的命令行界面提供了一个标准的项目结构,一组开发工具和一个插件系统。这允许Ember开发人员专注于构建应用程序,而不是构建使它们运行的​​支持结构。可通过ember --help显示Ember CLI提供的命令,或通过ember help <command-name>查看特定命令的信息。 创建应用程序 $ ember new super-rentals 上述ember