我有一个 Spark 应用程序,可能会出现意外数据流入应用程序并在运行时陷入内存异常的情况。
我该如何处理这种情况。
当执行程序内存不足时,会发生此错误。
错误消息:
Java.lang.OutOfMemory:GC 开销
解决方案:通过以下方式增加执行程序内存建立:
conf spark.executor.memory= <XY>g
同时增加随机分区作为
spark.sql.shuffle.partitions = <XY>
由于内存错误实际上是致命的,并且无法在运行时更改执行程序内存设置,因此除了使用新的、更高的内存限制重新启动应用程序外,您无能为力。
您可以尝试使用更高的执行程序内存再次运行作业,请尝试以下配置参数。
--conf "spark.executor.memory=16g"
此外,如果您遇到相同的问题是驱动程序,您可以尝试以下以增加驱动程序内存。
--conf "spark.driver.memory=16g"
希望这有帮助。
干杯!