Distributed Computation dalam Cloud
Computing
Kegiatan ini merupakan kumpulan beberapa computer yang
terhubung untuk melakukan pendistribusian, seperti mengirim dan menerima data
serta melakukan interaksi lain antar computer yang dimana membutuhkan sebuah
jaringan agar computer satu dan lainnya bisa saling berhubung dan melakukan
interaksi. Hal ini semua dilakukan dengan cloud computing yang seperti kita
ketahui memberikan layanan dimana informasinya disimpan di server secara
permanen dan disimpan di computer client secara temporary.
Komputasi Terdistribusi merupakan salah satu tujuan dari
Cloud Computing, karena menawarkan pengaksesan sumber daya secara parallel,
para pengguna juga bisa memanfaatkannya secara bersamaan (tidak harus menunggu
dalam antrian untuk mendapatkan pelayanan), terdiri dari banyak sistem sehingga
jika salah satu sistem crash, sistem lain tidak akan terpengaruh, dapat
menghemat biaya operasional karena tidak membutuhkan sumber daya (resourches).
Distribusi komputasi ini memiliki definisi mempelajari
penggunaan terkoordinasi dari computer secara fisik terpisah atau
terdistribusi. Pada distributed computing ini, program dipisah menjadi beberapa
bagian yang dijalankan secara bersamaan pada banyak computer yang terhubung
melalui jaringan internet.
Pengertian hadoop MapReduce
Untuk penyederhanaan saya coba merumuskan definisi hadoop
MapReduce ke dalam poin-poin sebagai berikut :
Hadoop MapReduce adalah algoritma atau proses komputasi pada
sistem terdistribusi
Ditulis di atas bahasa Java
Mempunyai 2 proses utama, yaitu map dan reduce
Mampu untuk memproses secara pararel data yang sangat besar,
karena komputasi bisa berjalan di puluhan, ratusan, atau bahkan ribuan node
Map mengambil satu set data dan mengubahnya menjadi satu set
data, di mana unsur-unsur individu dipecah menjadi tupel. Kemudian, Reduce
mengambil output dari hasil proses map sebagai masukan dan
menggabungkan/mengelompokkan tupel data ke satu set data yang lebih kecil dari
tupel. Sebagai urutan pada penamaan MapReduce menyiratkan, proses reduce selalu
dilakukan setelah proses map. Tupel di sini berarti pasangan antara key dan
value-nya, dapat digambarkan dengan simbol "(k1, v1)"
Tahapan proses MapReduce
MapReduce terdiri atas tiga tahap, yaitu tahap map, tahap
shuffle, dan terakhir tahap reduce. untuk tahapan shuffle dan reduce
digabungkan kedalam satu tahap besaran-nya yaitu tahap reduce.
1. Tahap map, memproses data inputan yang umumnya berupa
file yang tersimpan dalan HDFS (dapat di baca di Sistem file terdistribusi),
inputan tersebut kemudian diubah menjadi tuple yaitu pasangan antara key dan
value-nya.
2. Tahap reduce, memproses data inputan dari hasil proses
map, yang kemudian dilakukan tahap shuffle dan reduce yang hasil data set
baru-nya disimpan di HDFS kembali.
Berikut ini ilustrasi untuk mendapatkan gambaran tentang
proses map dan reduce.
NoSQL merupakan kombinasi dua kata, kata No dan SQL. NoSQL
adalah teknologi yang menandingi SQL. Pembuat dan pengadopsi awal dari kata
NoSQL menginginkan untuk berkata No RDBMS atau No Relational tetapi akhirnya
disuarakan dengan kata NoSQL. NoSQL digunakan sebagai payung pengertian untuk
semua basis data dan penyimpanan data yang tidak mengikuti dasar-dasar RDBMS.
NoSQL mewakili kelas dari produk dan kumpulan yang berbeda konsep tentang
penyimpanan data dan manipulasi.
Sejarah
konsep NoSQL dimulai ketika Carlo Strozzi pada tahun 1998 menggunakannya untuk
nama open source database relational yang tidak mengikuti standar SQL, kemudian
Eric Evans (karyawan Rackspace) memperkenalkan kembali istilah NoSQL pada awal
2009 ketika Johan Oskarsson dari Last.fm ingin menyelenggarakan acara untuk
membahas distributed database open source.
Sejarah
NoSQL tidak lepas dari kesulitan-kesulitan yang terjadi dalam penanganan
perkembangan database dengan menggunakan konsep relational database. Dalam
praktiknya, database tidak hanya berkembang secara vertikal (adanya penambahan
baris), tetapi juga berkembang secara horisontal (adanya penambahan field).
Ketika field bertambah banyak permasalahan yang terjadi ketika menggunakan
konsep RDBMS. Dalam konsep RDBMS, penambahan field merupakan masalah yang harus
dihindari, akan tetapi pada kenyataannya hal itu sering terjadi. Konsep
tersebut yang mendasari adanya konsep NoSQL. NoSQL tidak membutuhkan skema
tabel dan umumnya menghindari operasi join karena berkembang secara horisontal.
Kaum akademisi menyebutnya sebagai structured storage (penyimpanan terstruktur).
Eric
Brewer menyatakan bahwa NoSQL didasarkan pada teori CAP yaitu pemilihan dua
dari tiga aspek yang ada yang harus dipenuhi oleh basis data yaitu Consistency,
Avaibility, dan Partition Tolerance. Consistency Avaibility (CA) berseberangan
dengan Partition Tolerance dan biasanya berhubungan dengan
replikasi.Consistency Partition Tolerance (CP) berseberangan dengan Avaibility
dalam penyimpanan data. AvaibilityPartition Tolerance sistem mencapai kondisi
eventual consistency melalui replikasi dan verifikasi yang konsisten dalam node
yang telah terbagi-bagi. Dalam basis data NoSQL penerapan konsep tersebut
diterjemahkan dalam empat konsep dasar yaitu Non Relational, Map Reduce, Schema
Free, dan Horizontal Scaling.
a. Non
Relational
Konsep Non Relational dalam basis data NoSQL meliputi
hirarki, graf, dan basis data berorientasi obyek yang sudah terlebih dahulu ada
sejak tahun 1960 sebelum akhirnya basis data relational muncul pada tahun 1960.
Penggunaan basis data non relational kembali merebak seiring dengan
bertambahnya aplikasi berbasis web yang memerlukan banyak penyimpanan data.
Meskipun memiliki kelemahan pada konsistensi dan redundansi data, namun basis
data non relational dapat menyelesaikan beberapa permasalahan terkait dengan
avaibility danpartition tolerance. Tugas pengecekan konsistensi dan redundansi
data diserahkan pada sisi aplikasi, sedangkan basis data non relational hanya
bertugas memanipulasi penyimpanan saja.
b. Map Reduce
Map reduce merupakan model pemrograman yang diadaptasi dari
pemrograman fungsional yang diimplementasikan untuk mengolah dataset yang
sangat besar. Tujuan dai Map Reduce adalah merancang suatu abstraksi baru yang
memungkinkan pengguna untuk membuat antar muka pemrograman sederhana dan
menyembunyikan detail yang rumit dari paralelisasi, fault-tolerance, distribusi
data, dan load balancing dalam pustaka pemrogramannya. Hasilnya menunjukkan
bahwa penerapan Map Reduce dapat menyederhanakan antar muka pemrograman yang
dapat mendukung paralelisasi dan distribusi komputasi skala besar secara
otomatis.
Pemrograman dengan Map Reduce telah sukses diterapkan penggunaannya ole
Google untuk berbagai tujuan, salah satunya adalah Google Indexing. Dalam
kinerjanya, Google menerapkan ribuan mesin yang bekerja pada ratusan tera bytes
data dengan lokasi server yang tersebar di beberapa lokasi. Jenis arsitektur
seperti ini dapat mengurangi waktu kinerja yang diperlukan. Pembangunan
arsitektur Google dengan menggunakan Map Reduce memerlukan waktu hanya dalam
beberapa jam saja dibandingkan dengan tidak menerapkan Map Reduceyang
memerlukan waktu selama berbulan-bulan. Penggunaan library dalam Map Reduce
memiliki beberapa keuntungan seperti load balancing, optimasi perangkat
penyimpanan yang nantinya akan meningkatkan keefisiensian sistem dan memudahkan
dalam penggunaannya. Mudahnya Map Reduce bekerja dengan membagi proses menjadi
dua fase, yaitu tahap map dan tahap reduce. Seorang programmer dapat
memanfaatkan dua fungsi ini bersama fungsi key-value pairs sebagai input dan
output untuk mencapai semua fase.
c. Schema Free
NoSQL dan RDBMS memiliki perbedaan dalam hal penerapan skema
basis data. Dalam basis data relasional, sebuah tabel didesain dengan peraturan
skema yang ketat. NoSQL menyimpan data dengan aturan yang lebih longgar,
artinya tidak seperti basis data yang berdasarkan SQL tradisional. NoSQL tidak
memiliki tabel, kolom, primary key, foreign key, join, relasi (Joe Lennon,
2009).
Dalam pengembangan basis data relasional, developer/
database administrator harus berhati-hati dalam menentukan bagaimana tabel
saling berelasi dan field yang ada dalam setiap tabel, karena perubahan skema
dalam RDBMS dapat menimbulkan masalah ketergantungan dan integritas, seperti
timbulnya kolom null dan relasi kunci yang tidak cocok. Hal tersebut bukan
masalah dalam NoSQL karena adanya penerapan schema-free. Setiap dokumen
bertanggung jawab terhadap isinya sendiri. Jadi null value dapat dihilangkan
dalam beberapa baris, dan field baru dapat didefinisikan dalam setiap dokumen secara
independen.
Manfaat lain dalam
penggunaan schema-free adalah
penghematan dalam media
penyimpanan. Dalam basis
data relasional, setiap
field yang ada dalam tabel harus mempunyai nilai, walaupun nilai itu
null. Model data schema free artinya
setiap baris memungkinkan memiliki nilai sebanyak yang telah didefinisikan
dalam tiap field, dan tidak perlu menggunakan
nilai yang memang
tidak diperlukan. (Eben Hewitt,
2010).
Kelemahan dalam penggunaan schema-free adalah memunculkan
lemahnya pendefinisian struktur yang memungkinkan terjadinya penggunaan basis data yang tidak konsisten.
Jika tujuan pembangunan basis data
didasarkan pada konsistensi yang ketat, seperti wiki, document
management systems, discussion forums,
blogs, dan support management systems, maka basis data relasional masih merupakan pilihan yang
tepat.
d. Horizontal
Scaling
Horizontal scaling memungkinkan basis data dijalankan pada
beberapa server untuk meningkatkan kemampuan perangkat penyimpanan dan
meningkatkan efisiensi waktu. Hal ini memerlukan kemampuan dinamis pemartisian
data dalam serangkaian node (storage host) dalam suatu cluster server.
Kemampuan dengan menambahkan beberapa komputer sangatlah penting dilakukan
untuk data yang jumlahnya banyak, karenavertical scaling dilakukan dengan
meningkatkan kemampuan spesifikasi single server terbatas dan lebih mahal.
ref :
- febbri-grunge.blogspot.co.id/2015/06/komputasi-grid-grid-computing.html
-
https://sis.binus.ac.id/2014/10/11/konsep-dasar-virtualisasi/
-https://azizazkink.wordpress.com/2014/05/09/distributed-computation-dalam-cloud-computing/
-
http://noviardisyamsuir.blogspot.co.id/2016/03/hadoop-mapreduce-adalah.html
- http://www.aswa.web.id/2014/09/konsep-nosql.html