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