Apache Flume adalah sistem terdistribusi, andal, dan sangat tersedia yang digunakan untuk mengumpulkan, menggabungkan, dan memindahkan sejumlah besar data log ke penyimpanan terpusat. Berbagai sumber data didukung.
Skenario
Flume umumnya digunakan untuk mengumpulkan data log. Anda juga dapat menyesuaikan sumber Flume untuk mengumpulkan peristiwa dari berbagai sumber data eksternal.
Flume menyimpan data pada platform komputasi real-time, platform komputasi offline, atau sistem penyimpanan untuk analisis dan pembersihan data lebih lanjut. Platform komputasi real-time mencakup Flink, Spark Streaming, atau Storm. Platform komputasi offline mencakup MapReduce, Hive, atau Presto. Sistem penyimpanan mencakup Hadoop Distributed File System (HDFS), Object Storage Service (OSS), Kafka, atau Elasticsearch. 
Arsitektur
Sebuah agen Flume adalah instance dari Flume, yang merupakan proses Java VM (JVM) yang mengontrol transmisi peristiwa dari produsen ke konsumen. Sebuah agen Flume terdiri dari satu atau lebih sumber, saluran, dan sink. Satu sumber dapat terhubung ke beberapa saluran, dan satu saluran dapat terhubung ke beberapa sink. 
Istilah
Istilah | Deskripsi |
peristiwa | Satuan dasar data yang mengalir melalui agen Flume. Peristiwa terdiri dari array byte data dan kumpulan atribut string opsional yang ditambahkan sebagai header. Contoh: |
sumber | Pengumpul data. Ini mengumpulkan peristiwa dari sumber data eksternal dan mengirimkan beberapa peristiwa ke satu atau lebih saluran secara bersamaan. Sumber umum:
|
saluran | Saluran berada di antara sumber dan sink untuk menyimpan peristiwa. Saluran umum:
|
sink | Mendapatkan peristiwa dari saluran dan mengirimkan peristiwa sebagai transaksi ke penyimpanan eksternal. Setelah peristiwa dikirim ke penyimpanan eksternal, peristiwa tersebut dihapus dari saluran. Sink umum:
|