Konsep teras Apache Storm


Apache Storm membaca aliran mentah data masa nyata dari satu hujung dan menghantarnya melalui satu siri unit pemprosesan kecil dan mengeluarkan maklumat yang diproses/berguna di hujung yang lain.

Rajah berikut menerangkan konsep teras Apache Storm.

all_grouping.jpg

Sekarang mari kita lihat dengan lebih dekat komponen Apache Storm -

Ia adalah senarai elemen tersusun. Secara lalai, Tuple menyokong semua jenis data. Biasanya, ia dimodelkan sebagai set nilai yang dipisahkan koma dan diserahkan kepada gugusan Storm. StrimStrim ialah jujukan tuple yang tidak tertib. SpoutsSumber aliran. Biasanya, Storm menerima data input daripada sumber data mentah seperti Twitter Streaming API, baris gilir Apache Kafka, baris gilir Kestrel, dsb. Jika tidak, anda boleh menulis spout untuk membaca data daripada sumber data. "ISpout" ialah antara muka teras untuk melaksanakan spouts Beberapa antara muka khusus ialah IRichSpout, BaseRichSpout, KafkaSpout, dsb. BoltBolt ialah unit pemprosesan logik. Spout menghantar data ke proses Bolt dan Bolt dan menghasilkan aliran keluaran baharu. Bolt boleh melakukan operasi seperti penapisan, pengagregatan, penyatuan dan berinteraksi dengan sumber data dan pangkalan data. Bolt menerima data dan memancarkannya kepada satu atau lebih Bolt. "IBolt" ialah antara muka teras untuk melaksanakan Bolts. Beberapa antara muka biasa ialah IRichBolt, IBasicBolt, dsb.
Komponen Penerangan
Tuplestruktur data utama dalam Storm.
🎜

Mari kita lihat contoh masa nyata "Analitis Twitter" dan lihat cara ia dimodelkan dalam Apache Storm. Rajah di bawah menggambarkan struktur.

global_grouping.jpg

Input kepada "Analitis Twitter" datang daripada API Penstriman Twitter. Spout akan menggunakan API Penstriman Twitter untuk membaca tweet pengguna dan mengeluarkannya sebagai aliran tupel. Satu tuple dari muncung akan mempunyai nama pengguna twitter dan satu tweet sebagai nilai dipisahkan koma. Stim tupel ini kemudiannya akan dimajukan kepada Bolt, dan Bolt membahagikan tweet kepada perkataan individu, mengira kiraan perkataan dan menyimpan maklumat ke sumber data yang dikonfigurasikan. Kini kita boleh mendapatkan keputusan dengan mudah dengan menanyakan sumber data.

Topologi

Spouts dan Bolt disambungkan bersama untuk membentuk topologi. Logik aplikasi masa nyata dinyatakan dalam topologi Ribut. Ringkasnya, topologi ialah graf terarah di mana bucu adalah pengiraan dan tepi adalah aliran data.

Topologi mudah bermula dengan muncung. Spout memancarkan data kepada satu atau lebih Bolt. Bolt mewakili nod dalam topologi dengan logik pemprosesan yang minimum, dan output Bolt boleh dipancarkan ke Bolt lain sebagai input.

Storm memastikan topologi berjalan sehingga anda menamatkannya. Tugas utama Apache Storm ialah menjalankan topologi, dan menjalankan sebarang bilangan topologi pada masa tertentu.

Pencarian

Kini anda mempunyai idea asas tentang Spout dan Bolt. Mereka adalah unit logik terkecil topologi, dan topologi dibina menggunakan tatasusunan Spout dan Bolt tunggal. Mereka harus dilaksanakan dengan betul dalam susunan tertentu untuk topologi berjalan dengan jayanya. Setiap muncung dan bolt yang dilaksanakan oleh Storm dipanggil "tugas". Ringkasnya, tugas ialah pelaksanaan Spouts atau Bolts. Setiap muncung dan bolt boleh mempunyai berbilang kejadian berjalan dalam berbilang benang berasingan pada masa tertentu.

Proses

topologi berjalan dalam cara teragih pada berbilang nod pekerja. Ribut mengagihkan tugas secara sama rata pada semua nod pekerja. Peranan nod pekerja adalah untuk mendengar kerja dan memulakan atau menghentikan proses apabila kerja baharu tiba.

Pengumpulan Aliran

Data mengalir dari Spouts ke Bolts, atau dari satu Bolt ke Bolt yang lain. Pengumpulan aliran mengawal cara tupel dihalakan dalam topologi dan membantu kami memahami aliran tupel dalam topologi. Terdapat empat kumpulan terbina dalam, diterangkan di bawah.

Kumpulan Rawak

Dalam kumpulan rawak, bilangan tupel yang sama diagihkan secara rawak di kalangan semua pekerja yang melaksanakan Bolt. Rajah di bawah menggambarkan struktur.

field_grouping.jpg

Pengumpulan Medan

Medan dengan nilai yang sama dalam tupel dikumpulkan bersama dan baki tupel disimpan secara luaran. Tuple dengan nilai medan yang sama kemudiannya dihantar ke hadapan ke proses yang sama melaksanakan Bolts. Contohnya, jika strim dikumpulkan mengikut medan "perkataan", tupel dengan rentetan yang sama "Hello" akan dialihkan kepada pekerja yang sama. Rajah di bawah menunjukkan cara pengelompokan medan berfungsi.

shuffle_grouping.jpg

Global Grouping

Semua aliran boleh dikumpulkan dan dimajukan kepada satu Bolt. Pengumpulan ini menghantar tupel yang dijana oleh semua kejadian sumber kepada satu contoh sasaran (khususnya, pekerja dengan ID terendah dipilih).

twitter_analysis.jpg

All Grouping

All Grouping menghantar satu salinan setiap tupel kepada semua kejadian yang menerima Bolts. Pengumpulan ini digunakan untuk menghantar isyarat kepada Bolts. Semua kumpulan berguna untuk operasi gabungan.

core_concept.jpg