Apache Flink - Perpustakaan

Pada bab ini, kita akan belajar tentang berbagai pustaka Apache Flink.

Pemrosesan Peristiwa Kompleks (CEP)

FlinkCEP adalah API di Apache Flink, yang menganalisis pola peristiwa pada data streaming berkelanjutan. Peristiwa ini berlangsung hampir secara real time, yang memiliki throughput tinggi dan latensi rendah. API ini sebagian besar digunakan pada data Sensor, yang datang secara real-time dan sangat kompleks untuk diproses.

CEP menganalisis pola aliran input dan segera memberikan hasilnya. Ini memiliki kemampuan untuk memberikan pemberitahuan dan peringatan waktu nyata jika pola acara rumit. FlinkCEP dapat terhubung ke berbagai jenis sumber input dan menganalisis pola di dalamnya.

Seperti inilah contoh arsitektur dengan CEP -

Data sensor akan masuk dari berbagai sumber, Kafka akan bertindak sebagai framework perpesanan terdistribusi, yang akan mendistribusikan aliran ke Apache Flink, dan FlinkCEP akan menganalisis pola peristiwa yang kompleks.

Anda dapat menulis program di Apache Flink untuk pemrosesan acara yang kompleks menggunakan API Pola. Ini memungkinkan Anda untuk memutuskan pola peristiwa yang akan dideteksi dari data aliran berkelanjutan. Di bawah ini adalah beberapa pola CEP yang paling umum digunakan -

Mulai

Ini digunakan untuk menentukan status awal. Program berikut menunjukkan bagaimana itu didefinisikan dalam program Flink -

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

Dimana

Ini digunakan untuk menentukan kondisi filter dalam kondisi saat ini.

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

Lanjut

Ini digunakan untuk menambahkan status pola baru dan peristiwa yang cocok yang diperlukan untuk meneruskan pola sebelumnya.

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

Diikuti oleh

Ini digunakan untuk menambahkan status pola baru tetapi di sini peristiwa lain dapat terjadi dengan dua peristiwa yang cocok.

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

Gelly

API Grafik Apache Flink adalah Gelly. Gelly digunakan untuk melakukan analisis grafik pada aplikasi Flink menggunakan sekumpulan metode dan utilitas. Anda dapat menganalisis grafik besar menggunakan Apache Flink API secara terdistribusi dengan Gelly. Ada pustaka grafik lain yang juga seperti Apache Giraph untuk tujuan yang sama, tetapi karena Gelly digunakan di atas Apache Flink, ia menggunakan API tunggal. Ini sangat membantu dari sudut pandang pengembangan dan pengoperasian.

Mari kita jalankan contoh menggunakan Apache Flink API - Gelly.

Pertama, Anda perlu menyalin 2 file jar Gelly dari direktori opt Apache Flink ke direktori lib-nya. Kemudian jalankan toples contoh flink-gelly.

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

Sekarang mari kita jalankan contoh PageRank.

PageRank menghitung skor per vertex, yang merupakan jumlah skor PageRank yang ditransmisikan melalui in-edge. Setiap skor simpul dibagi rata di antara tepi luar. Simpul skor tinggi ditautkan ke simpul skor tinggi lainnya.

Hasilnya berisi ID simpul dan skor 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