Сообщение об ошибке указывает на то, что сортировщику не хватает страниц памяти.Причина в том, что доступной управляемой памяти недостаточно.Существует несколько способов решения этой проблемы:
- Увеличение доступной памяти для
TaskManager
с помощью taskmanager.heap.size
- Увеличение доли управляемой памяти, взятой из
taskmanager.heap.size
via taskmanager.memory.fraction
(по умолчанию 0,7) - Уменьшить размер страницы с помощью
taskmanager.memory.segment-size
- Уменьшить количество слотов на
TaskManager
, так как уменьшенный параллелизм на TM уменьшитсяколичество потребителей памяти на ТМ (операторы получают большую долю доступной памяти)
Если вы используете исключительно пакетную загрузку, то вам также следует активировать taskmanager.memory.preallocate: true
, что позволит выделить памятьво время запуска.Обычно это происходит быстрее, поскольку снижает нагрузку на сборщик мусора.
Еще один комментарий относительно taskmanager.memory.size
: это значение всегда должно быть меньше или равно taskmanager.heap.size
, поскольку оно указывает, сколько памяти из общего пространства кучи будетиспользоваться для управляемой памяти.Если этот параметр не указан, Flink займет часть доступной памяти кучи для управляемой памяти (указывается с помощью taskmanager.memory.fraction
).