Apache NiFi 1.16.3: обзор июньского релиза 2022

Автор Категория ,
Apache NiFi 1.16.3: обзор июньского релиза 2022

15 июня 2022 года вышел новый выпуск Apache NiFi. Разбираем, что нового и полезного в релизе 1.16.3: исправленные ошибки, а также улучшения, важные для дата-инженера и администратора кластера Apache NiFi.

7 исправленных ошибок в релизе 1.16.3

Apache NiFi – один из самых популярных и востребованных инструментов современного дата-инженера. Эта платформа активно используется для организации потоковых конвейеров обработки больших данных. Выпуск 1.16.3 не содержит новых фич, зато включает 7 важных исправлений ошибок и 5 улучшений, в основном, ориентированных на безопасность. В частности, внесены соответствующие обновления для зависимостей, исправлены проблемы на уровне платформы со службой контроллера и управлением жизненным циклом задачи создания отчетов, а также устранена регрессия, связанная с наследованием контекста параметра.

Исправлены следующие ошибки:

  • задачи создания отчетов сообщали о запланированном состоянии STOPPED без фактических потоков, а затем запускались. Это могло приводить к тому, что задача начиналась до вызова cancel(), чтобы предотвратить будущие триггеры. Без прерывания запущенных задач, задачи создания отчетов запускались некорректно.
  • служба контроллера неправильно удалялась из кэша. Ранее иетод удаления в StandardControllerServiceProvider имел 2 вызова для удаления службы из кэша, и 1 из них происходил до фактического удаления службы.
  • происходил периодический сбой системного теста в RemoteProcessGroupIT при попытке запустить процессор GenerateFlowFile во время его валидации;
  • реализация PutSmbFile.customValidate инициализировала emptySet() для сбора результатов проверки и, будучи неизменяемой коллекцией, генерировала исключение UnsupportedOperationException при добавлении фактического объекта ValidationResult.
  • ошибка автоматического теста SocketProtocolListenerTest, который настраивает тайм-аут в одну секунду для операций сокета, чего недостаточно для автоматических сборок GitHub;
  • ошибка наследования контекстов параметров при запуске;
  • удаление обновления отдельного объекта из ShellUserGroupProvider, который включает методы для обновления одного пользователя или одной группы, когда сущность не найдена. Обновление одного пользователя не требуется, поскольку информация доступна из начального перечисления известных пользователей. Метод обновления одной группы не работал должным образом, поскольку получал UUID на основе имени, который нельзя использовать для поиска одной группы.

5 улучшений свежего выпуска Apache NiFi

В новом релизе при удалении службы контроллера ее состояние очищается в фоновом потоке. Ранее, когда процессор удалялся с холста, синхронным/блокирующим образом вызывался метод onComponentRemoved() диспетчера состояний. По умолчанию время ожидания для связи с ZooKeeper составляет 30 секунд. Когда запрос истекал по тайм-ауту, например, из-за неправильной настройки Kerberos, это приводило к вытеснению узлов из кластера и случалось довольно часто при а при 30-секундном времени ожидания. Теперь, если запрос не выполнен, просто регистрируется предупреждение и синхронный сетевой вызов перемещается в фоновый поток, чтобы он не мешал веб-запросу на удаление компонента. Впервые такая идея уже была реализована для процессоров Apache NiFi, но для служб контроллеров это сделано только в версии 1.16.3.

Также улучшено поведение Kerberos-сервиса KuduLookupService после истечения срока действия TGT. Ранее KuduLookupService только охранял создание клиента kudu с проверкой/обновлением Kerberos TGT. Теперь это делается с помощью клиента при сканировании таблицы. Чтобы устранить ряд уязвимостей, обновлены Spring Framework до версии 5.3.20 и Spring Security до версии 5.7.1;

Свойство SFTP Transport Timeout теперь меняется со свойством Data Timeout Property. Процессоры SFTP включают свойство Connection Timeout (время ожидания подключения), которое применяется к начальному подключению к сокету, и свойство Data Timeout  (время ожидания данных), которое применяется к последующим методам чтения и записи сокета. В библиотеке SSHJ также есть параметр Transport Timeout, который определяет, как долго операции SSH должны ждать, прежде чем считать операцию неудачной. Внутреннее значение по умолчанию — 30 секунд, и ранее установка свойств тайм-аута для объекта SSHJ SSHClient не изменяла значения Transport Timeout. В свежем релизе обновлены процессоры SFTP, чтобы применить свойство тайм-аута данных к параметру тайм-аута транспорта SSHJ.

Наконец, обновлена среда Apache Tika до версии 2.4.0 , который устраняет уязвимость CVE-2022-30126, связанную с обработкой регулярных выражений при извлечении текста. Напомним, Apache Tika — это Java-фреймворк для обнаружения и анализа контента. Он обнаруживает и извлекает метаданные и текст из множества различных типов файлов, а также предоставляет библиотеку Java, имеет версии для сервера и командной строки, подходящие для использования с другими языками программирования.

Узнайте больше про администрирование и эксплуатацию Apache NiFi  для построения эффективных ETL-конвейеров потоковой аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://cwiki.apache.org/confluence/display/NIFI/Release+Notes#ReleaseNotes-Version1.16.3
  2. https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316020&version=12351844