Hadoop - Teknologi dalam Big Data dan Cara Kerjanya

Gambar, source: Wikimedia. License: Common Creative
Hadoop adalah framework open source untuk memproses, menyimpan, dan menganalisa data tak-terstruktur yang terdistribusi dalam jumlah yang sangat besar. Asal usul Hadoop diciptakan oleh Doug Cutting di Yahoo!, yang terinspirasi oleh MapReduce yang dikembangkan oleh Google pada awal tahun 2000-an untuk mengindeks web. Hadoop di-desain untuk menangani data yang berukuran petabytes dan exabytes yang terdistribusi pada beberapa node secara parallel. Cluster-cluster hadoop berjalan pada hardware yang tidak mahal sehingga banyak project yang menggunakan hadoop bisa dijalankan tanpa perlu menggangu keuangan secara signifikan. Hadoop saat ini menjadi suatu project dari Apache Software Foundation, dimana ratusan kontributor terus menerus selalu meningkatkan teknologi yang menjadi inti dari Hadoop. Konsep dasarnya adalah: daripada memproses data yang sangat besar pada satu mesin, Hadoop akan memecah-mecah Big Data menjadi beberapa bagian kecil-kecil sehingga masing-masing bagian bisa diproses dan dianalisa pada saat yang bersamaan.

Cara Kerja Hadoop

Suatu (mesin) client akan mengakses data tak-terstruktur dan semi-terstruktur dari berbagai sumber data misalnya file-fie log, feed dari media sosial, atau tempat penyimpanan data internal. Kemudian akan memecahnya menjadi beberapa bagian yang pada gilirannya akan di-load ke sistem file yang dibuat dengan beberapa node yang berjalan di atas suatu hardware. Sistem file default untuk menyimpan di Hadoop adalah Hadoop Distributed File System (HDFS). Sistem file seperti HDFS ini sangat canggih dalam menyimpan volume data tak-terstruktur dan semi-struktur dalam jumlah yang sangat besar karena data semacam itu tidak perlu diatur ke dalam bentuk kolom dan baris relasional (seperti dalam dbms). Masing-masing bagian di-replikasi beberapa kali dan di-load ke sistem file sehingga bila ada node yang gagal, node yang lain memiliki replikasi data yang berisi node yang gagal tersebut. Name Node akan bertindak sebagai fasilitator, yang mengkomunikasikan kembali ke client tentang informasi misalnya node mana saja yang bisa digunakan, di cluster mana data tertentu itu sedang diproses, dan node mana saja yang gagal.

Setelah data di-load ke cluster, data tersebut siap dianalisa melalui framework MapReduce. Client akan mengirimkan tugas/fungsi ‘Map’, yang pada umumnya adalah suatu query yang ditulis dalam bahasa pemrograman Java, ke salah satu node di dalam cluster yang disebut dengan ‘Job Tracker’. Job Tracker ini kemudian mengacu ke ‘Name Node’ untuk menentukan data mana yang perlu diakses untuk menyelesaikan job tersebut dan di cluster mana data tersebut berada. Setelah ditentukan, Job Tracker akan mengirimkan query ke node yang relevan. Daripada mengirimkan kembali semua data ke mesin yang menjadi pusat untuk pemrosesan, kemudian pemrosesan akan terjadi pada tiap-tiap node secara bersamaan atau secara parallel. Inilah karakteristik utama dari Hadoop.

Katika tiap-tiap node telah selesai memproses pekerjaan yang diberikan, node tersebut akan menyimpan hasil-hasilnya. Client akan memulai pekerjaan “Reduce” melalui Job Tracker dimana hasil-hasil fase (fungai) map yang disimpan secara lokal pada masing-masing node akan disatukan untuk menentukan ‘jawaban/hasil’ dari queri awal, dan kemudian di-load ke node yang lain di cluster tersebut. Client akan mengakses hasil-hasil tersebut yang kemudian bisa di-load ke salah satu dari berbagai macam sistem analisa. Pekerjaan MapReduce kemudian sudah selesai sampai disini.

Setelah fase MapReduce selesai, data yang sudah diproses tersebut siap untuk dilanjutkan ke analisa lebih lanjut yang dilakukan oleh para data scientist atau orang lain yang memiliki keahliaan dalam bidang analisa data. Data scientist bisa mengolah dan menganalisa data dengan menggunakan tool software apapun misalnya mencari insights/wawasan dan pola-pola yang tersembunyi atau menggunakannya sebagai fondasi dalam membuat aplikasi analytics yang akan digunakan oleh user. Data tersebut juga bisa di-model-kan dan dipindahkan dari cluster-cluster Hadoop ke dalam database relasional, data warehouse, dan berbagai sistem IT tradisional lainnya untuk dilakukan analisa lebih lanjut dan/atau untuk mendukung pemrosessan transaksional.

Link terkait Big Data:

No comments:

Post a Comment