#apache-flink
#apache-flink
Вопрос:
Я использую readTextFile(/path/to /dir) для чтения пакетов файлов, выполнения некоторых манипуляций со строками и сохранения их в cassandra.
Казалось, что все работает просто отлично, пока я не достиг более 170 файлов в каталоге (файлы удаляются после успешного запуска). Теперь я получаю «IOException: слишком много открытых файлов», и, быстро взглянув на lsof, я вижу, что тысячи файловых дескрипторов открываются, как только я запускаю свой код. Почти все файловые дескрипторы являются «сокетами».
Тестирование в меньшем масштабе всего с 10 файлами привело к открытию более 4000 файловых дескрипторов, после завершения скрипта все файловые дескрипторы закрываются и возвращаются к нормальному состоянию.
Это нормальное поведение flink? должен ли я увеличить ограничение?
Некоторые примечания: Среда — Tomcat 7 с Java 8, flink 1.1.2 с использованием DataSet API. Задание Flink запланировано с помощью quartz.
Все эти 170 файлов составляют около ~ 5 МБ.
Комментарии:
1. Можете ли вы добавить информацию о том, какую версию Flink вы используете? Кроме того, используете ли вы DataSet или DataStream API? Спасибо
2. Flink 1.1.2 использование DataSet API
Ответ №1:
Проблема решена.
После сужения кода я обнаружил, что использование «Unirest.setTimeouts» внутри высокопараллельного шага «map ()» вызвало выделение слишком большого количества потоков, что, в свою очередь, потребляло все мои файловые дескрипторы.