我正在运行作为 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/