Когда процессор выполняется, в NiFi выполняется транзакция ...
- Сеанс запущен
- Получен файл потока
- Выполнены операции
- Потоковый файл передан или удален
- Сеанс зафиксирован
В вашем примере PutHDFS или PutFile операция записи в HDFS или локальную файловую систему будет выглядеть как «Операции выполнены"часть выше.
Если в этом моменте происходит сбой NiFi до того, как сеанс был зафиксирован, то при перезапуске NiFi файл потока все равно будет находиться в той же очереди, и процессор попытается обработать его снова.
Состояние внешних систем (например, HDFS или локальной файловой системы в данном случае) зависит от того, как эта внешняя система обрабатывает запись данных.Если во внешней системе есть какой-либо механизм транзакций, возможно, что если сбой произошел до совершения транзакции во внешней системе, то никакие данные не видны, но в случае файловой системы, вероятно, имеется частично записанный файл.
В процессоре HDFS он записывает временный файл, имя которого начинается с «.»так что, скорее всего, этот файл все еще остается в HDFS, и это зависит от того, как процессоры обрабатывают существующие файлы с тем же именем.Обычно в процессоре есть свойство стратегии, в котором вы можете выбрать вариант «перезаписать» или «потерпеть неудачу» в существующих файлах.