Использование Apache NiFi

Содержание:

Рассмотрим базовую информацию по программе Apache NiFi. Разберемся, где она используется, изучим ее архитектуру.

Статья по NiFi Apache написана для «чайников» (новичков), но может быть полезной и для опытных разработчиков.

Что такое Apache NiFi

Это программа обработки событий, позволяющая контролировать поток информации из различных источников.

Apache NiFi создана на Java, полностью программа называется Niagara Files. Изначально она была разработана для загрузки информации, которая поддерживает взаимодействие с разными мелкими сетевыми устройствами, большими кластерами и облачной системой.

NiFi применяет концепт потока в виде шагов:

  • передача;
  • преобразование.

Исходя из этого, поток не интерпретируется как крупная пакетная операция, запрашивающая загрузку всей информации перед обработкой. Как пример, SQL-база данных содержит миллион строк и интерпретируется программой Apache тоже миллионом уникальных строк. Каждая из них требует индивидуальной обработки.

Архитектура NiFi

Использование Apache NiFi

NiFi запускается в JVM в ОС хоста. Его главные составляющие на JVM:

Web-сервер

Его цель — это размещение API-контроля и контроля NiFi на основе HTTP.

Регулятор потока

Он играет роль мозга операции, дает потоки для старта расширений и контролирует распорядок получения источников для выполнения.

Расширения

NiFi имеет более 100 расширений. Главный положительный момент расширений — это их работа и выполнение в JVM.

Репозиторий Flow File

Это место, где программа мониторит состояние информации о текущем Flow File, активном потоке в настоящее время. Можно подключить хранилище. По стандарту, в отмеченном разделе диска располагается журнал записи.

Репозиторий контента

В нем хранятся действительные байты начинки текущего Flow File. Можно подключить создание хранилища. Стандартный подход хранит блоки информации в файловой системе. Это делается для подключения любых физических разделов и для снижения конкуренции на любом из томов.

Хранилище Provance

При создании по умолчанию конструкция использует от 1 и более томов физического диска. Внутри всех хранилищ информация индексируется и для поисковой системы.

Программа NiFi зарекомендовала себя в работе с кластерами.

Использование Apache NiFi

От версии 1.0 в программу включен принцип кластеризации Zero-Master. Все узлы в кластере совершают одинаковые задачи с информацией, но каждый взаимодействует с разными информационными массивами.

Общие характеристики

  • Программа имеет пользовательский web-интерфейс, обеспечивающий хорошую работу дизайна, управления, наблюдения и обратной связи.
  • Имеется модуль создания информации. Он отслеживает и наблюдает за данными на протяжении всего времени прохождения потока.
  • Apache NiFi позволяет программисту делать процессоры и планы отчетности исходя из установленных требований.
  • Программа поддерживает более 20 протоколов шифрований, среди которых: SSL, SSH, HTTPS.
  • NiFi позволяет управлять пользователями и ролями. Программа настраивается с LDAP для авторизации.

Преимущества программы

  • Возможность получать информацию удаленно по протоколу SFTP.
  • Программа может делать кластеризацию. Это позволяет взаимодействовать с несколькими узлами, имеющими одинаковый поток, и эффективно обрабатывать разную информацию.
  • Обеспечение безопасности на пользовательском уровне группе процессов и другим модулям.
  • Компоненты программы функционируют по HTTPS. Это позволяет разработчику безопасно взаимодействовать с NiFi.
  • Поддержка 188 процессоров. Программист способен разработать плагины, поддерживающие большое количество информационных систем.

Недостатки программы

  • Если во время отключения от кластера программист добавляет в него правки, то flow.xml превращается в нерабочий файл. Узел не подключается повторно к кластеру, пока разработчик не скопирует flow.xml вручную с подключенного узла.
  • В Apache есть сложность с сохранением положения в момент перевода главного узла. Эта проблема не дает процессорам получать информацию из системных источников.

Пример использования Apache NiFi

Самый распространенный пример использования — это работа в BI-проектах Axmor.

Общий подход к обработке информации предполагает работу по какой-то определенной схеме. Если приходится работать с нетипизированной информацией, возникают сложности. Здесь любой инструмент выполняет задачи по-своему. Возьмем библиотеку Jolt, которая интегрирована в Apache NiFi и рассчитана на взаимодействие со структурой JSON. Благодаря этой интеграции, библиотека Jolt позволяет программе просматривать:

  • настройки блока;
  • пример входной информации;
  • прогноз выходящей информации.

Все это происходит на одном экране, делая работу удобной и не давая потерять важное из виду.

Ниже представлена схема операции сбора и обработки информации:

Использование Apache NiFi

В проектах постоянно нужно собирать сырую информацию. Для будущей обработки и анализа она помещается в пространство, куда можно попасть из следующих источников (Postgres, 1C-база, Res API).

При запуске Apache NiFi на сервере он начинает контролировать потоки информации. К программе можно зайти из браузера, где указываются:

  • источники приходящей информации;
  • места, где складываются данные;
  • какие нужно произвести преобразования с информацией, начиная от сборки и заканчивая сохранением.

Как пример, мы можем забрать информацию SQL-запросом с удаленного сервера и изменить ее в JSON. В преобразовании помогает библиотека Jolt, добавляя служебные данные. После этого схема немного корректируется, а полученная информация кладется в среду сбора данных.

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

Apache NiFi хорошо подходит для командной работы, позволяя в короткие сроки выполнять поставленные задачи.

Вопросы — Ответы

Можно ли подключить Apache NiFi к Vertica?

Да. Для этого необходимо:

  • настроить DBCPConnectionPool с jar-файлами Vertica;
  • создать временную область, куда попадет исполняемый файл;
  • создать шаблон для управления загрузками;
  • провести обновление атрибута Proc;
  • обновить Putfile proc. Он помещает загрузочный скрипт Vertica на ПК;
  • выполнить команду ExecuteStreamCommand, которая запускает скрипт оболочки.

Репозиторий Flow File мониторит полное состояние информации?

Да, он мониторит полное состояние.

Apache NiFi поддерживает работу с iOS?

Нет, программа не работает с iOS и в целом с продуктами Apple.

Заключение

Мы разобрались, что такое Apache NiFi и для чего он используется.

Если вам показалась интересной эта программа, начните ее осваивать.

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

Заходите! Ждем вас в блоге.

Присоединяйся к DevEducation — стань востребованным специалистом и построй карьеру в IT!