Transformasi Negeri dengan Window dalam Spark Streaming



Catatan blog ini membincangkan transformasi bernegara dengan penggulungan dalam Spark Streaming. Ketahui semua mengenai penjejakan data di seluruh kumpulan menggunakan D-Stream yang lengkap.

Disumbangkan oleh Prithviraj Bose

Di blog ini kita akan membincangkan konsep perubahan transformasi bernas Apache Spark.





Apakah transformasi bernegara?

Streaming percikan menggunakan seni bina kumpulan mikro di mana data yang masuk dikelompokkan ke dalam kumpulan mikro yang disebut Aliran Discretized (DStreams) yang juga berfungsi sebagai pengabstrakan asas program DStreams secara dalaman mempunyai Set Data Terdistribusi (RDD) yang berdaya tahan dan hasil daripada transformasi dan tindakan RDD standard ini dapat dilakukan.



Dalam streaming jika kita mempunyai kes penggunaan untuk melacak data secara berkumpulan, maka kita memerlukan DStreams yang lengkap.

Contohnya, kita dapat mengesan interaksi pengguna di laman web semasa sesi pengguna atau kita dapat mengesan hashtag twitter tertentu sepanjang masa dan melihat pengguna mana di seluruh dunia yang membicarakannya.

Jenis transformasi state-ful.



DStreams State-ful terdiri daripada dua jenis - penjejakan berdasarkan tetingkap dan penjejakan sesi penuh.

Untuk penjejakan bernegara, semua data yang masuk harus diubah menjadi pasangan nilai-kunci sehingga keadaan kunci dapat dijejaki secara berkumpulan. Ini adalah prasyarat.

Selanjutnya kita juga harus mengaktifkan checkpointing, konsep yang akan kita bincangkan di blog-blog yang akan datang.

> Penjejakan berdasarkan tetingkap

Dalam pengesanan berdasarkan tetingkap kumpulan masuk akan dikelompokkan dalam selang waktu, iaitu kumpulan kumpulan setiap 'x' saat. Pengiraan lebih lanjut pada kumpulan ini dilakukan menggunakan selang slaid.

Contohnya jika selang tetingkap = 3 saat dan selang slaid = 2 saat, maka semua data yang masuk akan dikelompokkan dalam kumpulan setiap 3 detik dan pengiraan pada kumpulan ini akan berlaku setiap 2 saat. Sebagai alternatif kita boleh katakan, lakukan pengiraan setiap 2 saat pada kumpulan yang tiba dalam 3 saat terakhir.

spark-streaming-dstream-window

Dalam rajah di atas kita melihat bahawa kumpulan masuk dikelompokkan setiap 3 unit waktu (selang tingkap) dan pengiraan dilakukan setiap 2 unit waktu (selang slaid).
Catatan: Tidak seperti Apache Flink, Apache Spark tidak mempunyai konsep window tumbling, semua windows tergelincir.

KEBAKARAN

API yang popular untuk transformasi berdasarkan tetingkap adalah

PairDStreamFunctions.reduceByKeyAndWindow .

Terdapat beberapa versi API yang terlalu banyak, mari kita lihat yang mempunyai parameter paling banyak. Selepas penjelasan ini, versi lain dari API ini yang terlalu banyak harus jelas.

Kembali: DStream yang diubah [(K, V)]

kurangkanFunc : Fungsi mengurangkan bersekutu.

invReduceFunc : Kebalikan fungsi pengurangan di atas. Ini diperlukan untuk pengkomputeran kumpulan masuk dan keluar yang cekap. Dengan bantuan fungsi ini, nilai kumpulan yang keluar dikurangkan dari nilai terkumpul fungsi pengurangan di atas. Sebagai contoh, jika kita mengira jumlah nilai masuk untuk kunci masing-masing, maka untuk kumpulan keluar, kita akan mengurangkan nilai untuk kekunci masing-masing (dengan syarat ia ada dalam kumpulan semasa yang lain abaikan).

tetingkap tetingkap : Unit masa untuk mengelompokkan kumpulan, ini harus menjadi kelipatan selang kumpulan.

slaidDuration : Satuan masa untuk pengiraan, ini mestilah berlipat ganda dari selang kumpulan. partition : Partitioner yang akan digunakan untuk menyimpan DStream yang dihasilkan. Untuk maklumat lebih lanjut mengenai membaca partition ini .

aktiviti hidup kitaran android

tapisFunc : Fungsi untuk menyaring pasangan nilai kunci yang telah habis masa berlakunya, contohnya jika kita tidak mendapat kemas kini kunci untuk suatu ketika, kita mungkin ingin menghapusnya.

Inilah a program untuk mengira perkataan yang berasal dari aliran soket. Kami telah menggunakan versi kelebihan fungsi di atas dengan selang tetingkap 4 saat dan selang slaid 2 saat.

Di blog seterusnya saya akan menulis mengenai penjejakan sesi penuh dan pemeriksaan.

Ada soalan untuk kami? Sila sebutkan di bahagian komen dan kami akan menghubungi anda.

Catatan berkaitan:

Caching Teragih dengan Pembolehubah Siaran