azure 通过ADF触发时作业中止

ujv3wf0j  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(128)

从adf调用数据块作业失败,错误为:org.apache.spark.SparkException: Job aborted.
错误详细信息:

Caused by: org.apache.spark.memory.SparkOutOfMemoryError: Unable to acquire 65536 bytes of memory, got 0
    at org.apache.spark.memory.MemoryConsumer.throwOom(MemoryConsumer.java:157)
    at org.apache.spark.memory.MemoryConsumer.allocateArray(MemoryConsumer.java:97)
    at org.apache.spark.util.collection.unsafe.sort.UnsafeInMemorySorter.<init>(UnsafeInMemorySorter.java:139)
    at org.apache.spark.util.collection.unsafe.sort.UnsafeExternalSorter.<init>(UnsafeExternalSorter.java:165)
    at org.apache.spark.util.collection.unsafe.sort.UnsafeExternalSorter.create(UnsafeExternalSorter.java:132)
    at org.apache.spark.sql.execution.UnsafeExternalRowSorter.<init>(UnsafeExternalRowSorter.java:112)
    at org.apache.spark.sql.execution.UnsafeExternalRowSorter.create(UnsafeExternalRowSorter.java:97)

我试过每隔500秒重试5次,它曾经解决了这个问题,因为它会在其中一次重试中运行良好,但现在即使运行5次后,它也会出错。但当直接从笔记本电脑尝试时,它运行良好。
我认为这是一个内存问题,有什么解决办法吗?

xytpbqjk

xytpbqjk1#

OOM(内存不足)错误在处理不断增加的负载或数据大小时非常常见。(或更多的shuffle?)
有时候,在没有指定OOM的情况下抛出内部服务器错误是很常见的,但它仍然是原因。
在这种情况下,错误消息会显示OOM,这意味着您应该增加内存或扩展集群。
附言:在OOM场景中不建议重试,因为错误往往会在一段时间后变成永久性的,比如当集群无法再承受它时。

相关问题