MAP REDUCE
merupakan sebuah model pemrograman yang secara
khusus dalam mengasosiasikan dan mendistribusian data dalam menangani masalah
pengaturan data dalam skala besar. Model pemrograman ini didasarkan pada konsep
yang sederhana yaitu melakukan suatu iterasi pada suatu inputan, kemudian
menghitung pasangan-pasangan key/value dari setiap bagian inputan,
mengelompokkan semua lanjutan value dengan key yang sama, melakukan proses
perulangan semua hasil dari pengelompokkan dan melakukan pengurangan untuk
setiap pengelompokkan tersebut. Dengan menggunakan metode Mapreduce ini
kemudahan dan kecocokan pada suatu data yang dieksekusi dalam jumlah besar
dapat diparalelkan dan didistribusikan melalui suatu pengelompokan data.
Mapreduce adalah suatu kesederhanaan yang memungkinkan atomatisasi dalam
pararelisasi dan pembagian perhitungan data dalam skala yang besar,
dikombinasikan dengan pengimplementasian sistem cluster yang saling berhubungan
sehingga menghasilkan performa tinggi dalam pendistribusian suatu data.
Mapreduce diinspirasikan oleh bahasa fungsional yang terdiri dari Map
Fungsi map memproses suatu
pasangan kunci dan nilai {key/value) menjadi kunci dan nilai
tengah {intermediate key/value) yang nantinya akan dikirim ke
fungsi reduksi. Saat operasi pemetaan berjalan secara paralel, file yang
menjadi input dibagi menjadi beberapa bagian yang disebut FileSplits. Hal
ini dilakukan karena sebuah file bisa memiliki ukuran yang besar dan itu akan
memperlambat kinerja. Saat fungsi pemetaan membaca baris data, fungsi ini menghasilkan
pasangan kunci berupa kata dan nilai berupa jumlah.
Dalam hal ini fungsi map yang
akan dilakukan untuk aplikasi pencarian term ini adalah sebagai berikut.
map(String key, String value):
// key: document name
// value: document contents
for each word w in value:
EmitIntermediate(w, “1”);
Pada program ini fungsi
pemetaan menghasilkan setiap kata yang diasosiasikan dengan suatu perhitungan
yang terjadi(hanya ‘1’ dalam setiap kata). Fungsi map akan menerima inputan
berupa key/value dengan key berupa nama dokumen dan value merupakan jumlah kata
yang dikandung dalam dokumen tersebut, untuk setiap kata dalam suatu dokumen
tersebut akan menghasilkan lanjutan key/value yang berupa (kata, 1).
Fungsi reduksi adalah memproses
pasangan kunci dan nilai yang dikirim dari fungsi pemetaan untuk menjadi
pasangan kunci dan nilai akhir yang nantinya akan ditulis ke file sebagai hasil.
Masing-masing kata kunci dan nilai yang dihasilkan oleh fungsi pemetaan
diproses secara berbeda dan hasilnya disimpan pada masing-masing file
hasil. Untuk suatu kata yang sama maka, fungsi reduksi akan menjumlahkan
semua angka nilai dari masing-masing kata tersebut, sehingga didapat pasangan
kata dan jumlahnya.
Dalam hal ini fungsi reduce
yang akan dilakukan untuk pencarian kata ini adalah sebagai berikut.
reduce(String key, Iterator
values):
// key: a word
// values: a list of counts
int result = 0;
for each v in values:
result += ParseInt(v);
Emit(AsString(result));
Pada
program ini fungsi reduce akan menghasilkan hasil dari penjumlahan bersama
semua perhitungan yang dihasilkan untuk sebuah keterangan kata yang terdapat
dalam suatu dokumen. Fungsi reduce akan menerima inputan berupa lanjutan
key/values yang telah dikelompokkan untuk setiap nilainya dengan sebuah kunci
yang sama dari hasil fungsi map, key berupa sebuah kata dan values berupa suatu
daftar jumlah dari perhitungan kata dalam setiap dokumen yang muncul tersebut.
Values dalam fungsi reduce dihasilkan dari penggabungan nilai-nilai dari proses
perhitungan kata dalam suatu iterasi, sehingga akan menghasilkan sebuah kata
dengan hasil penjumlahan kata yang muncul pada dokumen tersebut. Hasil ini
disimpan dalam satu file terpisah dari hasil pasangan kunci dan nilai yang
lain.
Salah satu contoh
penerapan nyata map-reduce ini dalam suatu produk adalah yang dilakukan Google.
Dengan inspirasi dari functional programming map dan reduce Google bisa
menghasilkan filesystem distributed yang sangat scalable, Google Big Table. Dan
juga terinspirasi dari Google, pada ranah open source terlihat percepatan
pengembangan framework lainnya yang juga bersifat terdistribusi dan menggunakan
konsep yang sama, project open source tersebut bernama Apache Hadoop.
NoSQL
Nosql adalah
sebuah memcache dari bagian database sederhana yang berisi key dan value.
Database ini bersifat struktur storage dimana sistem databasenya yang berbeda
dengan sistem database relasional. Nosql tidak membutuhkan skema table dan
menghindari operasi join dan berkembang secara horizontal. Selain itu NoSQL
merupakan suatu bahasan yang jauh dari arti kata yang dibaca. Tidak berarti
tanpa sql query. Melainkan bagaimana suatu sql query digunakan seminimal
mungkin dalam suatu program database. Dengan memanfaatkan teknologi NoSQL ini,
diharapkan mampu mengurangi beban server. Selain itu, hal ini juga memudahkan
programmer dalam membuat suatu program dan proses pengembangannya. Penjelasan
lebih mengenai NoSQL database akan dijelaskan pada sub bab dibawah ini.
Database
NoSQL, juga disebut Not Only SQL, adalah sebuah pendekatan untuk pengelolaan
datadan desain database yang berguna untuk set yang sangat besar data
terdistribusi. NoSQL, yang mencakup berbagai teknologi dan arsitektur, berusaha
untuk memecahkan masalah skala bilitas dan kinerja data yang besar yang
database relasional tidak dirancang untuk menangani.NoSQL ini sangat berguna ketika
perusahaan perlu untuk mengakses dan menganalisis sejumlah besar data
terstruktur atau data yang disimpan dari jarak jauh pada beberapa virtual
server di awan.
Berlawanan
dengan kesalahpahaman yang disebabkan oleh namanya, NoSQL tidak melarangbahasa
query terstruktur (SQL) Meskipun benar bahwa beberapa sistem NoSQL sepenuhnya
non-relasional, yang lain hanya menghindari fungsi relasional dipilih seperti
skema tabel tetap dan bergabung dengan operasi. Sebagai contoh, daripada
menggunakan tabel, database NoSQL mungkin mengatur data menjadi objek, kunci /
nilai berpasangan atau tupel
Kesimpulan
Map Reduce
danNoSQL (Not Only SQL) adalah sebuah pemogramaan framework guna untuk membantu
user mengembangankan sebuah data yang ukuran besar dapat terdistribusi satu
sama lain. Map-Reduce adalah salah satu konsep teknis yang sangat penting di
dalam teknologi cloud terutama karena dapat diterapkannya dalam lingkungan
distributed computing. Dengan demikian akan menjamin skalabilitas aplikasi kita
Referensi :
- http://renzcort.tumblr.com/post/1983932660/mapreduce
- http://cinoyraz.wordpress.com/2013/05/01/komputasi-cloud-komputasi-grid-virtualisasi-map-reduce-dan-nosql-not-only-sql/
- http://www.komputasiawan.com/python/map-reduce
Posting Komentar