Использование памяти Spark продолжает расти, пока продолжается модель обучения
Я обучаю модель U-Net с использованием TensorFlowOnSpark и набора данных изображений, которые могут уместиться в памяти моего кластера Spark, который имеет 3 рабочих узла (каждый - Ubuntu20 с памятью 11 ГБ). Каждый узел имеет 1 исполнитель и 4 ЦП с 9 ГБ памяти.
Когда начинается процесс обучения модели, я вижу, что на каждом из исполнителей имеется не менее 2 ГБ свободной памяти, но чем больше пакетов обучено, тем больше памяти используется исполнителями до тех пор, пока вся работа не выйдет из строя из-за выхода ошибка памяти.
Я попробовал свой код в конфигурации с одним узлом (1 рабочий со Spark) и получил тот же результат, но мой код работал нормально при использовании Distributed TensorFlow на 1 CPU без Spark!!
Используемая команда:
spark-submit --master spark://master:7077 --conf spark.dynamicAllocation.enabled=false --conf spark.cores.max=12 --conf spark.executor.memory=8g --conf spark.executor.memoryOverhead=8192 --conf spark.memory.storageFraction=0.1 u_net_train.py --cluster_size 3
Почему происходит такое сильное увеличение использования памяти и как его решить?