06. 运行时OOM问题 - aliyun/MaxCompute-Spark GitHub Wiki
Logview 2.0包含Sensor功能,可以查看master以及每个worker在运行时的内存和cpu使用情况
- 在某些Executor中出现Cannot allocate memory,一般是堆外内存不足,此时可以调整spark.yarn.executor.memoryOverhead参数
- 在Driver中出现Cannot allocate memory,可以调整spark.yarn.driver.memoryOverhead参数
如果在Executor中出现该错误,通常是堆内内存不足,此时可以适当增大内存,或减少Executor core
出现这类错误极有可能是某些Executor出现OOM
- 限制executor 并行度,将cores 调小:多个同时运行的 Task 会共享一个Executor 的内存,使得单个 Task 可使用的内存减少,调小并行度能缓解内存压力
- 增加单个Executor内存
- 增加分区数量,减少每个executor负载
- 考虑数据倾斜问题,因为数据倾斜导致某个 task 内存不足,其它 task 内存足够