StackOverflowError

在写一个大数据项目的时候,用的 json schema 嵌套了很多层,使用了很多字段。编译的时候就爆出了这个堆栈溢出:

1
2
scalac: Error: org.jetbrains.jps.incremental.scala.remote.ServerException
java.lang.StackOverflowError

解决方法一:

在 pom 文件里面添加 jvmArg, 将 -Xss 设置为 4096K:

1
2
3
4
5
6
7
8
9
10
<configuration>
<args>
<!--<arg>-make:transitive</arg>-->
<arg>-dependencyfile</arg>
<arg>${project.build.directory}/.scala_dependencies</arg>
</args>
<jvmArgs>
<jvmArg>-Xss4096K</jvmArg>
</jvmArgs>
</configuration>

这样 submit 的时候就可以跑了:

1
spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.3.0   --class ohmysummer.SparkStructuredStreaming --master local[2]  --driver-memory 2g    --driver-cores 2    --executor-memory 2g    --executor-cores 2    --num-executors 2  target/wordcount-1.0-SNAPSHOT.jar

解决方法二:

点击 run 按钮的时候仍旧报堆栈溢出, 在 IDEA 中设置:

image.png