请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

分类器运行时出错,(最新已经解决,方法在问题下面)

当我运行随机森林分类器时报下面的错误

// 随机森林分类器
val rf = new RandomForestClassifier()
rf.setFeaturesCol("features").setLabelCol("Survived")

val model = rf.fit(tmp4)  //这一步报错
Exception in thread "Executor task launch worker-0" java.lang.OutOfMemoryError: PermGen space
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:387)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)

Google以后,发现是分配的内存不足引起的异常,需要在 configuration里面添加VM option

https://img1.sycdn.imooc.com/szimg//5978957a0001c7d604240169.jpg

在VM option中添加如下:

-server 
-Xms1024m 
-Xmx2048m 
-XX:MaxPermSize=512m 
-XX:ReservedCodeCacheSize=512m

但是我后来只留下-XX:MaxPermSize=512m 也是可以的

正在回答

1回答

很明显的oom,google搞定

0 回复 有任何疑惑可以回复我~
  • 提问者 BaconNUDT #1
    老师,我在linux中运行没有出错,但是在win10的scala中运行就有这个问题,google问不到,都是tomcat相关的
    回复 有任何疑惑可以回复我~ 2017-07-26 20:17:05
  • 提问者 BaconNUDT #2
    原来oom问题都是差不多的
    回复 有任何疑惑可以回复我~ 2017-07-26 21:19:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信