Что делать, если нифи не удается записать данные? - PullRequest
0 голосов
/ 18 мая 2018

Если nifi записывает на диск, используя PutHDFS или PutFile, и он уничтожается или процесс останавливается, после записи 4 блоков из 10. После восстановления nifi будет писать с 5-го блока или перезаписывать весь файл, создавая дубликаты?

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Когда процессор выполняется, в NiFi выполняется транзакция ...

  • Сеанс запущен
  • Получен файл потока
  • Выполнены операции
  • Потоковый файл передан или удален
  • Сеанс зафиксирован

В вашем примере PutHDFS или PutFile операция записи в HDFS или локальную файловую систему будет выглядеть как «Операции выполнены"часть выше.

Если в этом моменте происходит сбой NiFi до того, как сеанс был зафиксирован, то при перезапуске NiFi файл потока все равно будет находиться в той же очереди, и процессор попытается обработать его снова.

Состояние внешних систем (например, HDFS или локальной файловой системы в данном случае) зависит от того, как эта внешняя система обрабатывает запись данных.Если во внешней системе есть какой-либо механизм транзакций, возможно, что если сбой произошел до совершения транзакции во внешней системе, то никакие данные не видны, но в случае файловой системы, вероятно, имеется частично записанный файл.

В процессоре HDFS он записывает временный файл, имя которого начинается с «.»так что, скорее всего, этот файл все еще остается в HDFS, и это зависит от того, как процессоры обрабатывают существующие файлы с тем же именем.Обычно в процессоре есть свойство стратегии, в котором вы можете выбрать вариант «перезаписать» или «потерпеть неудачу» в существующих файлах.

0 голосов
/ 18 мая 2018

NiFi защищает от аппаратных и системных сбоев, сохраняя записи о том, что происходило на каждом узле в это время в их соответствующем репозитории FlowFile, делая снимок.

Если узел находился в середине записи контента, когдаон вышел из строя, ничего не повреждено, так как FlowFile Repo является журналом записи-записи NiFi. Когда узел возвращается в оперативный режим, он восстанавливает свое состояние, сначала проверяя файлы «snapshot» и «.partial». Узел также принимает«снимок» и удаляет «.partial» (если он существует) или переименовывает файл «.partial» в «снимок», если файл «снимок» не существует.Период между системными контрольными точками настраивается в файле 'nifi.properties'. По умолчанию он равен 2 мин.

Следовательно, он будет восстанавливаться с 5-го блока и далее.

Спасибо.

...