Учебники

Апач Флинк — Библиотеки

В этой главе мы узнаем о различных библиотеках Apache Flink.

Комплексная обработка событий (CEP)

FlinkCEP — это API в Apache Flink, который анализирует шаблоны событий при непрерывной потоковой передаче данных. Эти события близки к реальному времени, которые имеют высокую пропускную способность и низкую задержку. Этот API используется главным образом для данных датчика, которые поступают в режиме реального времени и очень сложны для обработки.

CEP анализирует структуру входного потока и очень скоро дает результат. Он имеет возможность предоставлять уведомления и оповещения в режиме реального времени в случае сложной схемы событий. FlinkCEP может подключаться к различным источникам входного сигнала и анализировать в них шаблоны.

Вот так выглядит пример архитектуры с CEP —

архитектура с 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 

Gelly

Давайте теперь запустим пример PageRank.

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

Результат содержит идентификатор вершины и счет PageRank.