MapReduce: Besar dan Powerful, tapi Tidak Ribet
Dalam artikel
“Big Data dan Rahasia Kejayaan Google”, telah disebutkan beberapa teknologi
yang digunakan oleh Google untuk mengolah dan memberdayakan Big Data.
Diantaranya adalah Google File System (GFS), Google MapReduce, dan Bigtable.
Kita akan membahas ketiga teknologi ini secara lebih detail namun tetap dikemas
secara sederhana, biar gak kelihatan ribet alias complicated. Langsung saja,
kali ini kita akan membahas tentang apa itu MapReduce.
Definisi
Setiap istilah perlu definisi, dan harus ada kesepakatan akan
definisi tersebut biar tidak terjadi salah pengertian ataupun salah paham
diantara para pengguna istilah tersebut. MapReduce pun punya definisi.
MapReduce adalah model pemrograman rilisan Google yang ditujukan untuk
memproses data berukuran raksasa secara terdistribusi dan paralel dalam cluster
yang terdiri atas ribuan komputer. Dalam memproses data, secara garis besar
MapReduce dapat dibagi dalam dua proses yaitu proses Map dan proses Reduce.
Kedua jenis proses ini didistribusikan atau dibagi-bagikan ke setiap komputer
dalam suatu cluster (kelompok komputer yang salih terhubung) dan berjalan
secara paralel tanpa saling bergantung satu dengan yang lainnya. Proses Map
bertugas untuk mengumpulkan informasi dari potongan-potongan data yang
terdistribusi dalam tiap komputer dalam cluster. Hasilnya diserahkan kepada
proses Reduce untuk diproses lebih lanjut. Hasil proses Reduce merupakan hasil
akhir yang dikirim ke pengguna.
Desain dan
Struktur, MapReduce itu sederhana.
Dari definisinya, MapReduce mungkin terkesan sangat ribet. Untuk
memproses sebuah data raksasa, data itu harus dipotong-potong kemudian
dibagi-bagikan ke tiap komputer dalam suatu cluster. Lalu proses Map dan proses
Reduce pun harus dibagi-bagikan ke tiap komputer dan dijalankan secara paralel.
Terus hasil akhirnya juga disimpan secara terdistribusi. Benar-benar terkesan
merepotkan.
Beruntunglah, MapReduce telah didesain sangat sederhana alias
simple. Untuk menggunakan MapReduce, seorang programer cukup membuat dua
program yaitu program yang memuat kalkulasi atau prosedur yang akan dilakukan
oleh proses Map dan Reduce. Jadi tidak perlu pusing memikirkan bagaimana
memotong-motong data untuk dibagi-bagikan kepada tiap komputer, dan
memprosesnya secara paralel kemudian mengumpulkannya kembali. Semua proses ini
akan dikerjakan secara otomatis oleh MapReduce yang dijalankan diatas Google
File System (Gambar 1).
Gambar 1. Map
dan Reduce
Program yang memuat kalkulasi yang akan dilakukan dalam proses Map
disebut Fungsi Map, dan yang memuat kalkulasi yang akan dikerjakan oleh proses
Reduce disebut Fungsi Reduce. Jadi, seorang programmer yang akan menjalankan
MapReduce harus membuat program Fungsi Map dan Fungsi Reduce.
Fungsi Map bertugas untuk membaca input dalam bentuk pasangan
Key/Value, lalu menghasilkan output berupa pasangan Key/Value juga. Pasangan
Key/Value hasil fungsi Map ini disebut pasangan Key/Value intermediate.
Kemudian, fungsi Reduce akan membaca pasangan Key/Value intermediate hasil
fungsi Map, dan menggabungkan atau mengelompokkannya berdasarkan Key tersebut.
Lain katanya, tiap Value yang memiliki Key yang sama akan digabungkan dalam
satu kelompok. Fungsi Reduce juga menghasilkan output berupa pasangan
Key/Value.
Untuk memperdalam pemahaman, mari kita simak satu contoh. Taruhlah
kita akan membuat program MapReduce untuk menghitung jumlah tiap kata dalam
beberapa file teks yang berukuran besar (Gambar 2). Dalam program ini, fungsi
Map dan fungsi Reduce dapat didefinisikan sebagai berikut:
map(String key, String
value):
//key : nama file
teks.
//value: isi file
teks tersebut.
for each word W
in value:
emitIntermediate(W,"1");
reduce(String key,
Iterator values):
//key : sebuah
kata.
//values : daftar
yang berisi hasil hitungan.
int result = 0;
for each v in
values:
result+=ParseInt(v);
emit(AsString(result));
Hasil akhir dari program
ini adalah jumlah dari tiap kata yang terdapat dalam file teks yang dimasukkan
sebagai input program ini.
Gambar 2.
Menghitung jumlah tiap kata dalam suatu dokumen.
Menjalankan
Contoh Program MapReduce
Untuk lebih jelasnya lagi, kita bisa menjalankan langsung program
ini di PC kita sendiri. Tetapi, bukan dengan software MapReduce milik Google.
Sampai saat ini Google tidak pernah mendistribusikan software MapReduce
miliknya. Namun demikian, Apache telah merilis software open source yang
dikenal dengan nama Hadoop untuk mengebangkan dan menjalankan aplikasi
MapReduce. Secara garis besar Hadoop terdiri atas HDFS (Hadoop Distributed File
System) dan Hadoop MapReduce. HDFS adalah versi open source-nya GFS (Google
File System), dan Hadoop MapReduce adalah versi open source dari Google
MapReduce.
Ada tiga cara untuk menjalankan aplikasi MapReduce dengan
menggunakan Hadoop, yaitu:
1. Dengan menggunakan
Hadoop mode Standalone pada 1 PC Windows. Silakan simak: Menjalankan AplikasiMapReduce dengan Windows.
2. Dengan menggunakan
Hadoop mode Pseudo-Distributed pada 1 PC Linux. Silakan simak: MenjalankanHadoop mode Pseudo-Distributed dengan Linux.
3. Dengan menggunakan
Hadoop mode Terdistribusi Penuh pada beberapa PC Linux. Silakan simak:
Menjalankan Hadoop mode Fully-Distributed.
Cara yang paling mudah mungkin cara yang pertama, karena dapat
dilakukan pada satu PC Windows dan tidak memerlukan setting pada file
konfigurasi Hadoop.
Demikian tentang MapReduce, selamat mencoba.
Referensi:
“MapReduce: Simplified Data Processing on Large Clusters”, Jeffrey
Dean and Sanjay Ghemawat, Google Corp. 2004.
Artikel Terkait:
Mengaplikasikan MapReduce untuk Mencari Mutual Friends ala Facebook
Penerapan Model Pemrograman MapReduce Menggunakan Java dan MongoDB untuk Mencari Mutual Friends ala Facebook
Artikel Terkait:
Mengaplikasikan MapReduce untuk Mencari Mutual Friends ala Facebook
Penerapan Model Pemrograman MapReduce Menggunakan Java dan MongoDB untuk Mencari Mutual Friends ala Facebook
Comments
data analytics courses aurangabad
business analytics course in bhubaneshwar
Best Data Science Training institute in Bangalore
mytoys chat
OVER VOLTAGE RELAY
,
POWER RELAY
,
UNDER OVER VOLTAGE RELAY
,
UNDER VOLTAGE RELAY
,
VOLAGE CONTROL RELAY.low voltage protection relay