Я запускаю приложение Spark streaming с двумя рабочими. Приложение имеет объединение и объединение операций.Как оптимизировать разлив в случайном порядке в приложении Apache Spark
Все партии успешно завершены, но заметили, что показатели разлива в случайном порядке не соответствуют размеру входных данных или размера выходных данных (память разливов более 20 раз).
Пожалуйста, найти детали искровой стадии в изображении ниже:
После исследования по этому вопросу, обнаружили, что
Перемешать разлив происходит, когда нет достаточного объема памяти для данных воспроизведения в случайном порядке.
Shuffle spill (memory)
- размер десериализованных виде данных в памяти во время разлива
shuffle spill (disk)
- размер сериализованных виде данных на диск после того, как разлив
Поскольку десериализованные данные занимает больше места, чем сериализованные данные. Таким образом, переполнение Shuffle (память) больше.
Замечено, что этот размер памяти различной величины невероятно большой с большими входными данными.
Мои запросы:
ли это проливая влияет на производительность значительно?
Как оптимизировать это разлив как памяти, так и диска?
Есть ли какие-либо свойства искры, которые могут уменьшить/контролировать это огромное утепление?
@mitchus Частично Да, я просто увеличил количество задач и выделил больше памяти для перетасовки. Кроме того, я оптимизировал свой код, чтобы уплотнить размер структуры данных ... –