Apache Flume - Arsitektur

Ilustrasi berikut menggambarkan arsitektur dasar Flume. Seperti yang diperlihatkan dalam ilustrasi,data generators (seperti Facebook, Twitter) menghasilkan data yang dikumpulkan oleh Flume individu agentsberlari di atasnya. Setelah itu, adata collector (yang juga merupakan agen) mengumpulkan data dari agen yang dikumpulkan dan didorong ke penyimpanan terpusat seperti HDFS atau HBase.

Acara Flume

Sebuah event adalah unit dasar dari data yang diangkut di dalamnya Flume. Ini berisi payload array byte yang akan diangkut dari sumber ke tujuan disertai dengan header opsional. Acara Flume tipikal akan memiliki struktur berikut -

Agen Flume

Sebuah agentadalah proses daemon independen (JVM) di Flume. Ini menerima data (peristiwa) dari klien atau agen lain dan meneruskannya ke tujuan berikutnya (sink atau agen). Flume mungkin memiliki lebih dari satu agen. Diagram berikut mewakili aFlume Agent

Seperti yang ditunjukkan pada diagram, Agen Flume berisi tiga komponen utama yaitu, source, channel, dan sink.

Sumber

SEBUAH source adalah komponen Agen yang menerima data dari penghasil data dan mentransfernya ke satu atau lebih saluran dalam bentuk peristiwa Flume.

Apache Flume mendukung beberapa jenis sumber dan setiap sumber menerima peristiwa dari generator data yang ditentukan.

Example - Sumber Avro, Sumber barang bekas, sumber twitter 1% dll.

Saluran

SEBUAH channeladalah penyimpanan sementara yang menerima peristiwa dari sumber dan menyangganya sampai dikonsumsi oleh sink. Ini bertindak sebagai jembatan antara sumber dan wastafel.

Saluran ini sepenuhnya transaksional dan dapat bekerja dengan sejumlah sumber dan sink.

Example - Saluran JDBC, Saluran sistem file, Saluran memori, dll.

Wastafel

SEBUAH sinkmenyimpan data ke penyimpanan terpusat seperti HBase dan HDFS. Itu mengkonsumsi data (peristiwa) dari saluran dan mengirimkannya ke tujuan. Tujuan wastafel mungkin agen lain atau toko pusat.

Example - Wastafel HDFS

Note- Agen flume dapat memiliki berbagai sumber, sink, dan saluran. Kami telah membuat daftar semua sumber, sink, saluran yang didukung di bab konfigurasi Flume dari tutorial ini.

Komponen Tambahan Agen Flume

Apa yang telah kita bahas di atas adalah komponen primitif dari agen. Selain itu, kami memiliki beberapa komponen lagi yang memainkan peran penting dalam mentransfer peristiwa dari generator data ke penyimpanan terpusat.

Interceptors

Interceptors digunakan untuk mengubah / memeriksa kejadian flume yang ditransfer antara sumber dan saluran.

Pemilih Saluran

Ini digunakan untuk menentukan saluran mana yang akan dipilih untuk mentransfer data jika ada banyak saluran. Ada dua jenis pemilih saluran -

  • Default channel selectors - Ini juga dikenal sebagai pemilih saluran yang mereplikasi semua acara di setiap saluran.

  • Multiplexing channel selectors - Ini memutuskan saluran untuk mengirim acara berdasarkan alamat di tajuk acara itu.

Prosesor Tenggelam

Ini digunakan untuk memanggil sink tertentu dari grup sink yang dipilih. Ini digunakan untuk membuat jalur failover untuk sink Anda atau peristiwa load balance di beberapa sink dari sebuah saluran.