Apache Flink - Biblioteki

W tym rozdziale dowiemy się o różnych bibliotekach Apache Flink.

Przetwarzanie złożonych zdarzeń (CEP)

FlinkCEP to API w Apache Flink, które analizuje wzorce zdarzeń w ciągłym przesyłaniu strumieniowym danych. Te zdarzenia są zbliżone do czasu rzeczywistego i mają wysoką przepustowość i małe opóźnienia. Ten interfejs API jest używany głównie w przypadku danych czujnika, które są przesyłane w czasie rzeczywistym i są bardzo złożone w przetwarzaniu.

CEP analizuje wzorzec strumienia wejściowego i bardzo szybko podaje wynik. Ma możliwość dostarczania powiadomień i alertów w czasie rzeczywistym w przypadku, gdy wzorzec zdarzenia jest złożony. FlinkCEP może łączyć się z różnego rodzaju źródłami wejściowymi i analizować w nich wzorce.

Tak wygląda przykładowa architektura z CEP -

Dane z czujników będą pochodzić z różnych źródeł, Kafka będzie działać jako rozproszona platforma przesyłania wiadomości, która będzie dystrybuować strumienie do Apache Flink, a FlinkCEP przeanalizuje złożone wzorce zdarzeń.

Możesz pisać programy w Apache Flink do przetwarzania złożonych zdarzeń przy użyciu Pattern API. Pozwala zdecydować, jakie wzorce zdarzeń mają być wykrywane z danych ciągłego strumienia. Poniżej znajdują się niektóre z najczęściej używanych wzorców CEP -

Zaczynać

Służy do określenia stanu początkowego. Poniższy program pokazuje, jak jest zdefiniowany w programie Flink -

Pattern<Event, ?> next = start.next("next");

Gdzie

Służy do definiowania warunku filtru w bieżącym stanie.

patternState.where(new FilterFunction <Event>() {  
   @Override 
      public boolean filter(Event value) throws Exception { 
   } 
});

Kolejny

Służy do dołączania nowego stanu wzorca i zdarzenia dopasowania potrzebnego do przekazania poprzedniego wzorca.

Pattern<Event, ?> next = start.next("next");

Śledzony przez

Służy do dołączania nowego stanu wzorca, ale tutaj mogą wystąpić inne zdarzenia b / w dwóch pasujących zdarzeń.

Pattern<Event, ?> followedBy = start.followedBy("next");

Gelly

Graph API Apache Flink to Gelly. Gelly służy do wykonywania analizy wykresów w aplikacjach Flink przy użyciu zestawu metod i narzędzi. Możesz analizować ogromne wykresy za pomocą Apache Flink API w sposób rozproszony za pomocą Gelly. Istnieją również inne biblioteki wykresów, takie jak Apache Giraph, które służą do tego samego celu, ale ponieważ Gelly jest używany nad Apache Flink, używa pojedynczego interfejsu API. Jest to bardzo pomocne z punktu widzenia rozwoju i eksploatacji.

Uruchommy przykład wykorzystujący API Apache Flink - Gelly.

Po pierwsze, musisz skopiować 2 pliki jar Gelly z katalogu opt Apache Flink do jego katalogu lib. Następnie uruchom słoik flink-gelly-examples.

cp opt/flink-gelly* lib/ 
./bin/flink run examples/gelly/flink-gelly-examples_*.jar

Przeprowadźmy teraz przykład PageRank.

PageRank oblicza wynik na wierzchołek, który jest sumą wyników PageRank przesyłanych na krawędziach. Wynik każdego wierzchołka jest podzielony równo między zewnętrzne krawędzie. Wierzchołki o wysokim wyniku są połączone z innymi wierzchołkami o wysokim wyniku.

Wynik zawiera identyfikator wierzchołka i wynik PageRank.

usage: flink run examples/flink-gelly-examples_<version>.jar --algorithm PageRank [algorithm options] --input <input> [input options] --output <output> [output options] 

./bin/flink run examples/gelly/flink-gelly-examples_*.jar --algorithm PageRank --input CycleGraph --vertex_count 2 --output Print