Skip to main content

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.

Comments

Popular posts from this blog

Pengertian Binding dalam Bahasa Pemrograman dan Kapan Terjadinya

Binding dimaksudkan sebagai pengikatan (association) antara suatu entity dengan atributnya, misalnya binding/pengikatan antara suatu variable dengan tipe datanya atau dengan nilainya, atau dapat juga antara suatu operasi dengan simbol, misalnya simbol + dikenali sebagai operasi penjumlahan atau simbol ^ dikenali sebagai operasi pangkat, dll.  Peristiwa binding dan kapan terjadinya binding (biasanya disebut dengan binding time ) berperan penting dalam membicarakan semantics suatu bahasa pemrograman. Beberapa kemungkinan binding time adalah:

Latihan Soal Jawab Matematika Diskrit

Berikut di bawah ini adalah latihan soal jawab untuk matematika diskrit dengan topik-topik: Pernyataan Logika Circuits dan Ekspresi Boolean Argumen (valid/tidak valid) Teori Himpunan Permutasi Fungsi --o0o-- Pernyataan Logika 1. Buatlah tabel kebenaran untuk menentukan yang mana tautology dan yang mana contradiction dalam pernyataan logika (a) dan (b) di bawah ini: a. (p ∧ q) ∨ (∼p ∨ (p ∧ ∼q)) b.  (p ∧ ∼q) ∧ (∼p ∨ q)

Contoh proses normalisasi relasi dari UNF – 1NF – 2NF – dan 3NF

Dalam posting tulisan tentang: “Tujuan dan Manfaat Normalisasi dalam Perancangan Database” , kita sudah mempelajari tentang: “Apa itu normalisasi” dan “Mengapa kita perlu melakukan normalisasi”. Kedua pertanyaan itu sudah terjawab dalam tulisan tersebut.  Kemudian dalam posting tulisan tentang: “Konsep Ketergantungan Fungsional, Normalisasi, dan Identifikasi Primary Key dalam Perancangan Sistem Database” , kita sudah mempelajari suatu konsep penting yang digunakan untuk melakukan normalisasi, yaitu konsep ketergantungan fungsional yang terdiri dari ketergantungan penuh, ketergantungan parsial atau sebagian, dan ketergantungan transitif. Proses normalisasi pertama-tama dilakukan dengan mengidentifikasi adanya ketergantungan-ketergantungan tersebut dalam relasi-relasi dan kemudian menghilangkannya. Cara melakukan normalisasi, mengidentifikasi berbagai macam ketergantungan, dan menghilangkan ketergantungan pada relasi-relasi bisa dipelajari ulang dalam postingan tulisan d...