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