Apache Flume - Transfer Data Di Hadoop
Big Data,seperti yang kita ketahui, adalah kumpulan kumpulan data besar yang tidak dapat diproses menggunakan teknik komputasi tradisional. Big Data, jika dianalisis, memberikan hasil yang berharga.Hadoop adalah kerangka kerja sumber terbuka yang memungkinkan untuk menyimpan dan memproses Big Data dalam lingkungan terdistribusi di seluruh cluster komputer menggunakan model pemrograman sederhana.
Streaming / Data Log
Umumnya, sebagian besar data yang akan dianalisis akan dihasilkan oleh berbagai sumber data seperti server aplikasi, situs jejaring sosial, server cloud, dan server perusahaan. Data ini akan berbentuklog files dan events.
Log file - Secara umum, file log adalah a fileyang mencantumkan peristiwa / tindakan yang terjadi dalam sistem operasi. Misalnya, server web mencantumkan setiap permintaan yang dibuat ke server di file log.
Saat memanen data log tersebut, kami dapat memperoleh informasi tentang -
- kinerja aplikasi dan menemukan berbagai kegagalan perangkat lunak dan perangkat keras.
- perilaku pengguna dan mendapatkan wawasan bisnis yang lebih baik.
Metode tradisional untuk mentransfer data ke sistem HDFS adalah dengan menggunakan putperintah. Mari kita lihat cara menggunakanput perintah.
HDFS menempatkan Command
Tantangan utama dalam menangani data log adalah memindahkan log yang dihasilkan oleh beberapa server ini ke lingkungan Hadoop.
Hadoop File System Shellmenyediakan perintah untuk memasukkan data ke Hadoop dan membacanya. Anda dapat memasukkan data ke Hadoop menggunakanput perintah seperti yang ditunjukkan di bawah ini.
$ Hadoop fs –put /path of the required file /path in HDFS where to save the file
Masalah dengan put Command
Kita bisa menggunakan putperintah Hadoop untuk mentransfer data dari sumber ini ke HDFS. Tapi, itu menderita kekurangan berikut -
Menggunakan put perintah, kita dapat mentransfer only one file at a timesedangkan pembuat data menghasilkan data dengan kecepatan yang jauh lebih tinggi. Karena analisis yang dilakukan pada data lama kurang akurat, maka diperlukan solusi untuk mentransfer data secara real time.
Jika kami menggunakan putperintah, data perlu dikemas dan harus siap untuk diunggah. Karena server web menghasilkan data secara terus menerus, ini adalah tugas yang sangat sulit.
Yang kami butuhkan di sini adalah solusi yang dapat mengatasi kekurangannya put perintah dan transfer "streaming data" dari generator data ke penyimpanan terpusat (terutama HDFS) dengan penundaan yang lebih sedikit.
Masalah dengan HDFS
Dalam HDFS, file ada sebagai entri direktori dan panjang file akan dianggap nol sampai ditutup. Misalnya, jika suatu sumber sedang menulis data ke dalam HDFS dan jaringan terputus di tengah operasi (tanpa menutup file), maka data yang tertulis di file akan hilang.
Oleh karena itu diperlukan sistem yang handal, dapat dikonfigurasi, dan dipelihara untuk mentransfer data log ke dalam HDFS.
Note- Dalam sistem file POSIX, setiap kali kita mengakses file (misalnya menjalankan operasi tulis), program lain masih dapat membaca file ini (setidaknya bagian file yang disimpan). Ini karena file sudah ada di disk sebelum ditutup.
Solusi yang Tersedia
Untuk mengirim data streaming (file log, event dll ..,) dari berbagai sumber ke HDFS, kami memiliki alat-alat berikut yang tersedia untuk kami -
Penulis Facebook
Scribe adalah alat yang sangat populer yang digunakan untuk menggabungkan dan mengalirkan data log. Ini dirancang untuk menskalakan ke sejumlah besar node dan kuat untuk jaringan dan kegagalan node.
Apache Kafka
Kafka telah dikembangkan oleh Apache Software Foundation. Ini adalah broker pesan sumber terbuka. Dengan Kafka, kami dapat menangani feed dengan throughput tinggi dan latensi rendah.
Apache Flume
Apache Flume adalah mekanisme penyerapan alat / layanan / data untuk mengumpulkan dan mengangkut data streaming dalam jumlah besar seperti data log, peristiwa (dll ...) dari berbagai layanan web ke penyimpanan data terpusat.
Ini adalah alat yang sangat andal, terdistribusi, dan dapat dikonfigurasi yang pada prinsipnya dirancang untuk mentransfer data streaming dari berbagai sumber ke HDFS.
Dalam tutorial ini, kami akan membahas secara detail cara menggunakan Flume dengan beberapa contohnya.