В этой главе мы узнаем о различных библиотеках Apache Flink.
Комплексная обработка событий (CEP)
FlinkCEP — это API в Apache Flink, который анализирует шаблоны событий при непрерывной потоковой передаче данных. Эти события близки к реальному времени, которые имеют высокую пропускную способность и низкую задержку. Этот API используется главным образом для данных датчика, которые поступают в режиме реального времени и очень сложны для обработки.
CEP анализирует структуру входного потока и очень скоро дает результат. Он имеет возможность предоставлять уведомления и оповещения в режиме реального времени в случае сложной схемы событий. FlinkCEP может подключаться к различным источникам входного сигнала и анализировать в них шаблоны.
Вот так выглядит пример архитектуры с CEP —
Данные датчиков будут поступать из разных источников, Kafka будет действовать как распределенная система обмена сообщениями, которая будет распределять потоки в Apache Flink, а FlinkCEP будет анализировать сложные шаблоны событий.
Вы можете писать программы в Apache Flink для обработки сложных событий с использованием Pattern API. Это позволяет вам определять шаблоны событий для обнаружения из данных непрерывного потока. Ниже приведены некоторые из наиболее часто используемых шаблонов CEP —
Начать
Он используется для определения начального состояния. Следующая программа показывает, как она определяется в программе Flink —
Pattern<Event, ?> next = start.next("next");
куда
Используется для определения условия фильтра в текущем состоянии.
patternState.where(new FilterFunction <Event>() { @Override public boolean filter(Event value) throws Exception { } });
следующий
Он используется для добавления нового состояния шаблона и соответствующего события, необходимого для передачи предыдущего шаблона.
Pattern<Event, ?> next = start.next("next");
С последующим
Он используется для добавления нового состояния шаблона, но здесь могут происходить другие события, ч / б два совпадающих события.
Pattern<Event, ?> followedBy = start.followedBy("next");
Gelly
API API Apache Flink — это Gelly. Gelly используется для анализа графиков в приложениях Flink с использованием набора методов и утилит. Вы можете анализировать огромные графики, используя Apache Flink API, распределенным образом с Gelly. Существуют и другие библиотеки графов, например Apache Giraph для той же цели, но поскольку Gelly используется поверх Apache Flink, он использует один API. Это очень полезно с точки зрения разработки и эксплуатации.
Давайте запустим пример, используя Apache Flink API — Gelly.
Во-первых, вам нужно скопировать 2 файла Gelly jar из каталога opt Apache Flink в его каталог lib. Затем запустите flink-gelly-examples jar.
cp opt/flink-gelly* lib/ ./bin/flink run examples/gelly/flink-gelly-examples_*.jar
Давайте теперь запустим пример PageRank.
PageRank вычисляет оценку для каждой вершины, которая является суммой оценок PageRank, переданных по ребрам. Оценка каждой вершины делится поровну между ребрами. Вершины с высокими показателями связаны с другими вершинами с высокими показателями.
Результат содержит идентификатор вершины и счет PageRank.