在运行"pio列车“后,我们得到了以下错误。它工作大约20分钟,在第26阶段失败。
[ERROR] [Executor] Exception in task 0.0 in stage 1.0 (TID 3)
[ERROR] [SparkUncaughtExceptionHandler] Uncaught exception in thread Thread[Executor task launch worker-0,5,main]
[ERROR] [SparkUncaughtExceptionHandler] Uncaught exception in thread Thread[Executor task launch worker-4,5,main]
[WARN] [TaskSetManager] Lost task 2.0 in stage 1.0 (TID 5, localhost): java.lang.OutOfMemoryError: Java heap space
at com.esotericsoftware.kryo.io.Output.<init>(Output.java:35)
at org.apache.spark.serializer.KryoSerializer.newKryoOutput(KryoSerializer.scala:80)
at org.apache.spark.serializer.KryoSerializerInstance.output$lzycompute(KryoSerializer.scala:289)
at org.apache.spark.serializer.KryoSerializerInstance.output(KryoSerializer.scala:289)
at org.apache.spark.serializer.KryoSerializerInstance.serialize(KryoSerializer.scala:293)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:239)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
我们的服务器有大约30 by的内存,但hbase+elasticsearch占用了大约10 by。
我们正在尝试处理Universal Recommender创建的大约2000万条记录。
我尝试了以下命令来增加执行器/驱动程序内存,但没有帮助:
pio train -- --driver-memory 6g --executor-memory 8g
我们可以尝试哪些选项来解决这个问题?有没有可能用这么大的内存在服务器上处理这么多事件?
发布于 2017-02-02 10:04:02
垂直伸缩只能带你到这一步,但如果是AWS,你可以尝试通过停止并重新启动一个更大的实例来增加可用内存。
CF查看大量数据,因为Spark通过在内存中进行计算来获得速度(默认情况下)您将需要足够的内存来保存分布在所有Spark workers上的所有数据,而在您的情况下只有1个。
我想到的另一件事是,这是一个Kryo错误,所以您可以尝试稍微增加Kryo缓冲区的大小,这是在engine.json中配置的
这里还有一个谷歌社区支持小组:https://groups.google.com/forum/#!forum/actionml-user
https://stackoverflow.com/questions/41856992
复制相似问题