Apache Flume adalah sistem terdistribusi, andal, dan berdaya tinggi (HA) yang secara efektif mengumpulkan, menggabungkan, dan memindahkan sejumlah besar data log dari berbagai sumber ke penyimpanan pusat.
Skenario Penggunaan
Flume paling umum digunakan untuk pengumpulan log. Flume juga dapat mentransfer jenis data lain melalui custom Source.
Flume mengirimkan data ke platform komputasi real-time, seperti Flink, Spark Streaming, dan Storm, serta ke platform komputasi offline, seperti MapReduce (MR), Hive, dan Presto. Flume juga dapat mengirimkan data langsung ke sistem penyimpanan, seperti Hadoop Distributed File System (HDFS), OSS, Kafka, dan Elasticsearch. Hal ini mempersiapkan data untuk analisis lebih lanjut dan pembersihan lalu lintas.
Arsitektur
Flume Agent adalah sebuah instans Flume—proses Java Virtual Machine (JVM) yang mengelola aliran Events dari produsen ke konsumen. Setiap Flume Agent terdiri atas Source, Channel, dan Sink. Source dapat menulis ke beberapa Channel, dan beberapa Sink dapat membaca dari satu Channel.
Istilah
|
Name |
Description |
|
Event |
Event adalah unit dasar data yang mengalir melalui Flume Agent. Event terdiri atas map Header opsional dan array byte yang berisi data. Berikut contohnya.
|
|
Source |
Source adalah pengumpul data. Source mengumpulkan data dari sumber data eksternal dan mengirimkannya dalam bentuk batch ke satu atau beberapa Channel. Source umum meliputi:
|
|
Channel |
Channel berfungsi sebagai antrian buffer antara Source dan Sink. Channel umum meliputi:
|
|
Sink |
Sink mengambil Event dari Channel dan menyimpannya ke penyimpanan eksternal dalam sebuah transaksi. Setelah transaksi berhasil disimpan, Event tersebut dihapus dari Channel. Sink umum meliputi:
|