Я установил spark-jobserver, чтобы включить сложные запросы в сокращенный набор данных.Spark JobServer, настройки памяти для выпуска
jobserver выполняет две операции:
- Синхронизировать с основной удаленной базой данных, он делает дамп некоторых таблиц сервера, сократить и агрегирует данные, сохранить результат в виде паркетной файла и кэшировать как таблица sql в памяти. Эта операция будет выполняться каждый день;
- Запросы, когда операция синхронизации завершена, пользователи могут выполнять сложные SQL-запросы в агрегированном наборе данных (в конечном итоге), экспортируя результат в виде файла csv. Каждый пользователь может выполнить только один запрос во времени и дождаться его завершения.
Самый большой стол (до и после сокращения, включающий также некоторые соединения) имеет почти 30M строк, по меньшей мере, 30 полей.
На самом деле я работаю над dev-машиной с 32 ГБ оперативной памяти, предназначенной для сервера заданий, и все работает плавно. Проблема в том, что в производственной части мы имеем одинаковое количество RAM, совместно используемое с сервером PredictionIO.
Я спрашиваю, как определить конфигурацию памяти, чтобы избежать утечек памяти или сбоев для искры.
Я новичок в этом, поэтому каждая ссылка или предложение принимаются.
Спасибо