All Products
Search
Document Center

E-MapReduce:Ikhtisar Flume

Last Updated:Aug 22, 2026

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.flume2

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.flume

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.

--------------------------------
| Header (Map) | Body (byte[]) |
--------------------------------
               Flume Event

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:

  • Avro Source: Mendengarkan pada port Avro untuk menerima events yang dikirim dari client Avro. Avro adalah protokol yang disediakan oleh Hadoop untuk serialisasi data.

  • Exec Source: Mengambil data dengan mendengarkan output command line, seperti tail -f /var/log/messages.

  • NetCat TCP Source: Mendengarkan pada port TCP tertentu untuk mengambil data. Source ini mirip dengan Netcat UDP Source.

  • Taildir Source: Memantau beberapa file dalam direktori, mencatat offset, dan mencegah kehilangan data. Source ini umum digunakan.

Channel

Channel berfungsi sebagai antrian buffer antara Source dan Sink.

Channel umum meliputi:

  • Memory Channel: Menyimpan data dalam memori. Memberikan kinerja tinggi dan umum digunakan.

  • File Channel: Menyimpan data dalam file. Mencatat file Checkpoint dan DATA, sehingga memberikan keandalan tinggi tetapi kinerja lebih rendah.

  • JDBC Channel: Menyimpan data dalam database relasional.

  • Kafka Channel: Menyimpan data menggunakan Kafka.

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:

  • Logger Sink: Digunakan untuk pengujian.

  • Avro Sink: Mengonversi data menjadi Avro Events. Terutama digunakan untuk menghubungkan beberapa Flume Agent.

  • HDFS Sink: Menulis data ke HDFS. Sink ini umum digunakan.

  • Hive Sink: Menulis data ke tabel atau partisi Hive. Menggunakan transaksi Hive untuk menulis Events.

  • Kafka Sink: Menulis data ke Kafka.