Apache spark 正在分析spark executor内存转储{几天后容器内存耗尽}
我正在开发spark 1.3,我的应用程序是spark流媒体应用程序。我使用纱线作为资源管理器。我的应用程序运行了几天,然后spark job定期丢失executor。当我查看node_manager日志时,发现了一个异常:Apache spark 正在分析spark executor内存转储{几天后容器内存耗尽},apache-spark,memory-management,memory-leaks,jvm,spark-streaming,Apache Spark,Memory Management,Memory Leaks,Jvm,Spark Streaming,我正在开发spark 1.3,我的应用程序是spark流媒体应用程序。我使用纱线作为资源管理器。我的应用程序运行了几天,然后spark job定期丢失executor。当我查看node_manager日志时,发现了一个异常: containerId XXXX is running beyond physical memory limits. Current usage: 11.1 GB of 11 GB physical memory used; 13.4 GB of 23.1 GB virtu
containerId XXXX is running beyond physical memory limits. Current usage: 11.1 GB of 11 GB physical memory used; 13.4 GB of 23.1 GB virtual memory used. Killing container.
我对这一例外情况的问题如下:
-XX:+HeapDumpOnOutOfMemoryError
和-XX:HeapDumpPath=..
。只需通过spark.executor.extraJavaOptions
添加这些属性即可-XX:+HeapDumpOnOutOfMemoryError
和-XX:HeapDumpPath=..
。只需通过spark.executor.extraJavaOptions
添加这些属性即可-XX:+HeapDumpOnOutOfMemoryError会有所帮助,但是,默认情况下,转储会保存到任务的当前工作目录中,在Hadoop的情况下,该目录是由框架管理的临时临时暂存空间,一旦任务完成,它将变得不可访问。您将如何解决此问题?
HeapDumpPath
参数将允许指定一个更永久的位置。-XX:+HeapDumpOnOutOfMemoryError会有所帮助,但是,默认情况下转储会保存到任务的当前工作目录,在Hadoop的例子中,这是一个由框架管理的临时暂存空间,一旦任务完成,它将变得不可访问。您将如何解决此问题?HeapDumpPath
参数将允许指定更永久的位置。