Map Reduce dan NoSQL

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 
Share this article :

Posting Komentar

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. BDH_JR CORPORATION - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger