В задании EMR-Flink отображается ошибка «G C Ошибка превышения предела служебных данных». Кластер EMR создается в VP C с ролями EMR по умолчанию. Если бы опции oop и Flink были выбраны из расширенного варианта (я пробовал разные версии Had oop и Flink)
Метод Step используется для отправки пользовательского jar с набором аргументов. Задание считывает данные из базы данных Aurora
. Проблема: задание успешно выполняется, когда в запросе на чтение содержится меньше строк из базы данных Aurora, но по мере того, как число строк достигает миллионов, я начинаю получать "G C ошибка превышения предела служебной нагрузки ". Я использую драйвер JDB C для подключения Aurora DB. На моей локальной машине я не сталкиваюсь с какой-либо ошибкой, и все идет нормально, независимо от размера данных в запросе на чтение.
Точная ошибка:
java.lang.OutOfMemoryError: GC overhead limit exceeded
-XX:OnOutOfMemoryError="kill -9 %p"
Executing /bin/sh -c "kill -9 8344"...
Пробное решение: 1: Я пытался Для решения проблемы воспользуйтесь этой ссылкой: https://aws.amazon.com/premiumsupport/knowledge-center/emr-outofmemory-gc-overhead-limit-error/.
2: Я также пытался предоставить конфигурацию flink во время создания кластера, такую как
taskmanager.heap.mb:13926
jobmanager.heap.mb:13926
taskmanager.memory.preallocate:true
taskmanager.memory.off-heap:true
3: Я также пробовал другие параметры и добавил другие настройки конфигурации flink, но ничего не работает для меня.