Как мы знаем, создание соединения Apache Livy стоит дорого. Он создаст новые приложения и загрузит файлы задач.
В моем случае пользователь может отправить задание, используя мой веб-API для записи с помощью Java, затем я использую Apache Livy Client для отправки задания в Spark.
Я хочу сохранить один или исправить количество экземпляров клиента Livy, и я могу проверять состояние клиента, например пул подключений.

Если ваша работа представляет собой конечную единицу работы, вам следует использовать абстракцию Livy Batch, а не Session. Session предназначены для интерактивной работы (например, Jupyter Notebook или Apache Zeppelin), когда пользователи отправляют некоторые запросы, оценивают результаты и отправляют еще несколько. Batch, с другой стороны, больше всего напоминает то, что вы обычно отправляете, используя исполняемый файл spark-submit; он также завершится сам по себе, когда рабочие задачи будут выполнены, и очистится после себя, поэтому нет необходимости в пуле соединений. Тем не менее, пул соединений также не имеет смысла для Session, поскольку каждый сеанс имеет состояние (переменные, определенные в предыдущих операторах, запущенных в указанном сеансе), и это состояние не является (и не должно) совместно использоваться