gpt4 book ai didi

jar - 使用 sbt 程序集创建 fat jar 时出现 OutofMemoryErrory

转载 作者:行者123 更新时间:2023-12-02 20:32:05 25 4
gpt4 key购买 nike

我们正在尝试制作一个包含一个小型 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 文件,而是将 jar 放入 lib 文件夹中,并将源文件放入 src/main/scala 目录中,并使用 sbt run 运行。我们的 assembly.sbt 文件如下所示:

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。另外,如果我们编写代码或构建项目的方式存在严重错误,这也会对我们有很大帮助;尝试建立一个基本的 Spark 程序有很多令人头痛的事情!

最佳答案

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

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

-Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -XX:MaxPermSize=256m

您可以通过执行类似的操作来扩大堆大小

sbt -J-Xms2048m -J-Xmx2048m assembly

关于jar - 使用 sbt 程序集创建 fat jar 时出现 OutofMemoryErrory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30903742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com