У нас есть приложение для потоковой передачи искр, которое считывает кинезис и возвращает обратно в кинезис.
Приложение запускается не более 2 недель, после чего один из исполнителей начинает давать сбой и должен быть перезапущен. Мы продолжали следить за использованием памяти исполнителем, и оно продолжало расти очень медленно (следовательно, не было замечено ни в одном тесте на выносливость).
Мы не кэшируем нигде RDD. Время сборки мусора нормальное (не превышает 20%, установленное искрой). Даже тогда память не очищается. Есть ли способ заставить исполнителей выполнять сборку мусора?
Мы создаем новые объекты (объекты DTO, запросы Kinesis и др. c.). Но разве они не должны собирать мусор?