【发布时间】:2020-02-18 17:34:17
【问题描述】:
我一直在尝试在 windows 上的 intellij 中安装和运行一个简单的 Java Apache Spark,但我遇到了一个无法解决的错误。我已经通过 maven 安装了 spark。我收到此错误:
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
19/03/20 23:53:23 INFO SparkContext: Running Spark version 2.0.0-cloudera1-SNAPSHOT
19/03/20 23:53:24 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
19/03/20 23:53:24 INFO SecurityManager: Changing view acls to: Drakker
19/03/20 23:53:24 INFO SecurityManager: Changing modify acls to: Drakker
19/03/20 23:53:24 INFO SecurityManager: Changing view acls groups to:
19/03/20 23:53:24 INFO SecurityManager: Changing modify acls groups to:
19/03/20 23:53:24 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(Drakker); groups with view permissions: Set(); users with modify permissions: Set(Drakker); groups with modify permissions: Set()
19/03/20 23:53:25 INFO Utils: Successfully started service 'sparkDriver' on port 50007.
19/03/20 23:53:25 INFO SparkEnv: Registering MapOutputTracker
19/03/20 23:53:25 ERROR SparkContext: Error initializing SparkContext.
java.lang.IllegalArgumentException: System memory 259522560 must be at least 471859200. Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configuration.
at org.apache.spark.memory.UnifiedMemoryManager$.getMaxMemory(UnifiedMemoryManager.scala:212)
at org.apache.spark.memory.UnifiedMemoryManager$.apply(UnifiedMemoryManager.scala:194)
at org.apache.spark.SparkEnv$.create(SparkEnv.scala:308)
at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:165)
at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:260)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:429)
at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:58)
at Spark.App.main(App.java:16)
19/03/20 23:53:25 INFO SparkContext: Successfully stopped SparkContext
Exception in thread "main" java.lang.IllegalArgumentException: System memory 259522560 must be at least 471859200. Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configuration.
at org.apache.spark.memory.UnifiedMemoryManager$.getMaxMemory(UnifiedMemoryManager.scala:212)
at org.apache.spark.memory.UnifiedMemoryManager$.apply(UnifiedMemoryManager.scala:194)
at org.apache.spark.SparkEnv$.create(SparkEnv.scala:308)
at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:165)
at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:260)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:429)
at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:58)
at Spark.App.main(App.java:16)
我尝试手动设置驱动程序内存,但没有成功。我也尝试在本地安装 spark,但从命令提示符更改驱动程序内存没有帮助。
这是代码:
package Spark;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import java.util.Arrays;
import java.util.List;
public class App
{
public static void main( String[] args )
{
SparkConf conf = new SparkConf().setAppName("Spark").setMaster("local");
// conf.set("spark.driver.memory","471859200");
JavaSparkContext sc = new JavaSparkContext(conf);
List<Integer> data= Arrays.asList(1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9);
JavaRDD<Integer> rdd=sc.parallelize(data);
JavaRDD<Integer> list=rdd.map(s->s);
int totalLines=list.reduce((a,b)->a+b);
System.out.println(totalLines);
}
}
实例化 JavaSparkContext 时出现错误。有谁知道如何解决这个问题?
谢谢!
【问题讨论】:
-
欢迎来到 SO。看来您正在尝试开始使用 Spark 并且...看来您并没有真正走对路 :( 因为您似乎将一些早期的 Spark 代码与新的 Spark 代码混合在一起,
Spark version 2.0.0-cloudera1-SNAPSHOT看起来不太很好。我可以建议看看 Java 示例吗?非常自私,我会推荐 github.com/jgperrin/net.jgp.labs.spark 或 github.com/jgperrin/net.jgp.books.spark.ch01... 乐于助人
标签: java apache-spark