3

我目前正在研究 apache spark,并且正在尝试从 Web 应用程序运行 java 代码。当我尝试将代码作为 java 应用程序运行时,它工作正常。但是当我尝试将它部署为 Web 应用程序时,当程序到达保存模型的阶段时,即model.save(sparkcontext,modelpath)我收到一个permgen java.lang.OutOfMemory exception. 但是当我尝试将模型编写为目标文件时,例如:

    File modelFile = new File(modelPath);
    if(!modelFile.exists()){

            modelFile.createNewFile();

    }
    FileOutputStream fout = new FileOutputStream(modelFile);
    ObjectOutputStream oout = new ObjectOutputStream(fout);
    oout.writeObject(model);
    oout.close();

它工作正常。model.save()在 apache spark 中是如何实现的?

有没有其他方法可以保存模型?

提前致谢

4

1 回答 1

0

这纯粹是 Permgen 内存问题。您可以尝试使用以下配置来解决您的问题。

如果您使用的是 Oracle 提供的 JVM,您可以通过使用参数来增加 permgen 内存-XX:MaxPermSize=256M (or some other amount of space)。如果您使用任何其他 JVM,您可以阅读文档并尝试增加 permgen 内存。

于 2018-04-02T17:45:23.240 回答