Требование: импортируйте файлы, созданные в реальном времени из каталога A, в указанный каталог B.
Здесь необходимо использовать процессоры «GetFile» и «PutFile». Чтобы выполнить вышеуказанные требования, настройте соответствующие свойства «GetFile» и «PutFile».
Установите каталог для мониторинга данных. Чтобы задать здесь «/root/test/A», вам необходимо заранее создать этот каталог на каждом узле кластера.
Нажмите «Применить», и информация будет следующей:
Приведенное выше предупреждающее сообщение указывает на то, что текущий процессор не подключен ни к какому нижестоящему процессору, и мы подключимся к процессору «PutFile» позже.
Описание конфигурации «Свойства» вышеуказанного процессора «GetFile» следующее:
Элементы конфигурации | значение по умолчанию | разрешенные значения | описывать |
---|---|---|---|
Входной каталог (каталог ввода данных) | [^\.].* | Каталог, из которого нужно извлечь файлы. | |
Фильтр файлов (Фильтрация файлов) | Выбирайте только файлы, имена которых соответствуют заданному регулярному выражению. | ||
Фильтр пути (фильтрация пути) | Если для параметра «Рекурсивные подкаталоги» установлено значение true, сканируются только подкаталоги, пути которых соответствуют заданному регулярному выражению. | ||
Размер партии (размер партии) | 10 | Максимальное количество файлов, которые можно получить за итерацию. | |
Сохранить исходный файл (Сохранить исходный файл) | false | true false | Если это правда, файлы не будут удалены после копирования в «Репозиторий контента». По умолчанию — ложь. |
Рекурсивные подкаталоги (рекурсивный подкаталог) | true | true false | Следует ли рекурсивно получать файлы из подкаталогов. |
Интервал опроса (интервал опроса) | 0 sec | Устанавливает время ожидания перед выполнением листинга каталогов. | |
Игнорировать скрытые файлы (игнорировать скрытые файлы) | true | true false | Игнорировать ли скрытые файлы. |
Минимальный возраст файла (минимальный возраст файла) | 0sec | Устанавливает минимальный возраст файла для извлечения. Любые файлы младше этого возраста (на основе даты последнего изменения) будут игнорироваться. | |
Максимальный возраст файла (максимальный возраст файла) | Устанавливает максимальный возраст файла для извлечения. Любые файлы старше этого (на основе даты последнего изменения) будут игнорироваться. | ||
Минимальный размер файла (минимальный размер файла) | 0 B | Установите минимальный размер, необходимый для извлечения файлов. | |
Максимальный размер файла (максимальный размер файла) | Установите максимальный размер, необходимый для извлечения файлов. |
Установите каталог, в который записываются данные после их поступления в текущий процессор.
Описание конфигурации «Свойства» вышеуказанного процессора «PutFile» следующее:
Элементы конфигурации | значение по умолчанию | разрешенные значения | описывать |
---|---|---|---|
Каталог (каталог выписанных данных) | Каталог, из которого нужно извлечь файлы. Вы можете использовать выражения, например: /x1/x2/${path}. | ||
Стратегия разрешения конфликтов (стратегии разрешения конфликтов) | fail | replace ignore fail | Указывает, что следует делать, если файл с таким именем уже существует в выходном каталоге. |
Создать недостающие каталоги (создать недостающий каталог) | true | Если это правда, будут созданы отсутствующие целевые каталоги. Если значение false, потоковая отправка файла не удалась. | |
Максимальное количество файлов (максимальное количество файлов) | Указывает максимальное количество файлов, которые могут существовать в выходном каталоге. | ||
Время последнего изменения (время последнего изменения) | Установите для параметра LastModifiedTime выходного файла значение этого свойства. Формат должен быть гггг-ММ-дд'Т'ЧЧ:мм:ссZ. Вы можете использовать выражение, например ${file.lastModifiedTime}. | ||
Разрешения (разрешение) | true false | Установите разрешения выходного файла на значение этого атрибута. Формат должен быть UNIX rwxrwxrwx. Используйте - для замены запрещенного разрешения (например, rw-r--r--) или восьмеричного числа (например, 644). ). Вы можете использовать выражение, например ${file.permissions}. | |
Owner | true false | Установите для владельца выходного файла значение этого свойства, используя язык выражений, например ${file.owner}. Примечание. Во многих операционных системах Nifi необходимо запускать от имени суперпользователя, чтобы иметь разрешение на установку владельца файла. | |
Group | Устанавливает группу в выходном файле в значение этого свойства, используя язык выражений, например ${file.group}. |
После подключения к процессору процессор «PutFile» по-прежнему имеет следующее предупреждение:
Дважды щелкните «PutFile» и настройте «НАСТРОЙКИ»:
Щелкните правой кнопкой мыши пустое место холста, выберите «Пуск», чтобы запустить «GetFile» и «PutFile», и запишите следующие данные в каталог «/root/test/A» любого узла node1, node2 и node3. в Linux или вы можете переместить существующие файлы в соответствующий каталог:
[root@node1 ~]# echo "aaa" > /root/test/A/a1.txt
[root@node2 ~]# echo "bbb" > /root/test/A/a2.txt
[root@node3 ~]# echo "ccc" > /root/test/A/a3.txt
Обновите страницу WebUI, которая покажет, что данные успешно сохранены в каталоге «/root/test/B».
На соответствующих узлах node1, node2 и node3 мы видим, что соответствующие данные имеются в каталоге «/root/test/B». Если вы хотите остановить вышеуказанные процессоры, вы можете щелкнуть правой кнопкой мыши пустое место панели холста и выбрать «Стоп», чтобы остановить все процессоры.
Примечание. Каталог для записи данных не обязательно создавать заранее на соответствующем узле. Он может быть создан автоматически по умолчанию и настроен через атрибут «Создать недостающие каталоги». Если имена записанных файлов данных совпадают, вы можете настроить свойство «Стратегия разрешения конфликтов» на «заменить» для замены.