java - 基于 Spark 的应用程序在 JDK 8 中失败?

标签 java scala hadoop apache-spark

我正在运行作为 Spark 安装的一部分的内置示例示例,并在 Hadoop 2.7 + Spark 和 JDK 8 中运行。但是它给了我以下错误:

Exception in thread "main" java.lang.OutOfMemoryError: Cannot allocate new DoublePointer(10000000): totalBytes = 363M, physicalBytes = 911M

at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) Caused by: java.lang.OutOfMemoryError: Physical memory usage is too high: physicalBytes = 911M > maxPhysicalBytes = 911M at org.bytedeco.javacpp.Pointer.deallocator(Pointer.java:572) at org.bytedeco.javacpp.Pointer.init(Pointer.java:121)

我遵循了以下 SO question也进行了配置更改。

除此之外,我还引用了这些链接:YARN-4714 , HADOOP-11090

在 JDK 8 中运行 Spark 是否有任何问题。

以下是我在我的简单集群中运行的软件版本:

jdk-8u131-linux-x64
scala-2.12.2
spark-2.1.1-bin-without-hadoop
hadoop-2.7.0

有一件事,当我在 JDK 7 中运行该程序时,它工作正常,但在 JDK 8 中失败。

有没有人遇到过这个问题,如果有,解决方法是什么? hadoop、spark、scala 不是还不兼容 JDK 8 吗?

谁能帮帮我?

最佳答案

您收到 OOM 错误表明内存不足,无法启动 java。正如您提到的 JDK7,它运行良好。与 JDK7 相比,升级到 JDK8 需要更多内存。请在此处检查 JDK8 内存要求 - https://dzone.com/articles/java-8-permgen-metaspace

关于java - 基于 Spark 的应用程序在 JDK 8 中失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43863632/

相关文章:

java - Jetty - 如何以编程方式在 web.xml 中强制执行安全约束

java - E4 EPartService findPart() 抛出 java.lang.Null 指针异常

java - 当在 java 中动态添加项目时,如何避免触发 JComboBox 的 actionlistener 事件?

scala - 如何添加到 scala.collection.mutable.Buffer

scala - Spark : break partition iterator for better memory management?

hadoop - 将参数传递给mapreduce hadoop中的记录读取器

java - 断线器应用

scala - 添加两个 RDD[mllib.linalg.Vector]

hadoop - Hive插入HBase-可能生成 key ?

scala - spark - 在 Spark 中读取 Hive 表时从 RDD[Row] 中提取元素