Map Reduce dan No SQL
Tugas Cloud Computing, Database, etc.
MapReduce dan No SQL
1. Pengertian MapReduce

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.
2. Desain dan Struktur, MapReduce
MapReduce telah didesain sangat sederhana. 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.

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. 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.

3. Menjalankan Contoh Program MapReduce
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.
2.
Dengan menggunakan Hadoop mode Pseudo-Distributed pada 1 PC Linux.
3. Dengan
menggunakan Hadoop mode Terdistribusi Penuh pada beberapa PC Linux.
Cara yang paling mudah mungkin cara yang pertama, karena
dapat dilakukan pada satu PC Windows dan tidak memerlukan setting pada file
konfigurasi Hadoop.
4. Pengertian No SQL

NoSQL singkatan Not Only SQL. Ini adalah salah satu jenis
lain dari penyimpanan data selain database yang digunakan sebelumnya. Jenis
database ini digunakan untuk menyimpan sejumlah besar penyimpanan data seperti
data dalam facebook yang terus meningkat dari hari ke hari .
NoSQL
adalah sistem manajemen database non-relasional, pengambilan informasi yang
cepat dari database dan portabel. NoSQL pada dasarnya berasal dari sistem
database RDB. Database ini biasanya
berinteraksi dengan sistem operasi UNIX. Database NoSQL database adalah mereka
yang non-relasional, open source, didistribusikan di dunia, serta memiliki kinerja tinggi dengan cara
linear yang terukur. Johan Oskarsson dari Last.fm memperkenalkan kembali
istilah NOSQL pada awal 2009 ketika ia menyelenggarakan sebuah acara untuk membahas
“Distributed Open Source dan Non-relational Database”.

Berbeda
dengan basis data SQL dimana meskipun berbeda-beda pembuat namun cara kerja
NOSQL maupun cara penggunaannya relatif sama. Contohnya sama-sama menggunakan
tabel yang dihubungkan oleh relasi-relasi, manipulasi data dengan bahasa SQL
dan sebagainya. Basis data NOSQL bisa sangat berbeda satu sama lain. Sebagian besar
sistem NOSQL pada masa awal tidak berusaha untuk memberikan atomicity,
konsistensi, isolasi dan daya tahan jaminan, bertentangan dengan praktik yang
berlaku di antara sistem database relasional.

Dengan
munculnya situs jejaring sosial seperti facebook dan twitter, permintaan
teknologi baru yang dapat menangani jumlah data yang besar telah menyebabkan
munculnya berbagai teknologi baru dan salah satu yang menonjol adalah NoSQL
yang cukup membantu dalam penyimpanan segudang data. NoSQL (non-relasional)
relatif lebih cepat dari database relasional. Sebelumnya, di SQL menggunakan
bahasa Query untuk mengambil serta menyimpan data, kalau di NoSQL menyimpan entitas data besar dengan
menggunakan dokumen XML (eXtensible Mark up Language) format. Bahasa XML
pada dasarnya digunakan untuk menyimpan data dalam bentuk terstruktur yang
dibaca manusia.


6. Peranan data dan Arsitektur di NoSQL
Ada empat komponen dalam blok bangunan nya.
- Modelling Language: Ini menggambarkan struktur database dan juga mendefinisikan skema yang itu didasarkan. data adalahyang disimpan dalam bentuk baris dan kolom menggunakan XML format. Dan setiap data (nilai) sesuai dengan itu ditugaskan kunci yang unik. Untuk akses data lebih cepat, model dibangun di lingkungan yang sesuai.
- Database Struktur: Setiap basis data sementara bangunan menggunakan struktur data sendiri, dan menyimpan data menggunakan perangkat penyimpanan permanen.
- Database bahasa Query: Semua operasi yang dilakukan pada database yang membuat, merubah, membaca dan menghapus.
- Transaksi: Dalam setiap transaksi dalam data, mungkin ada jenis kesalahan atau kegagalan, kemudian, mesin tidak akan berhenti kerja.
5. Karakteristik NoSQL
👾 NoSQL tidak menggunakan model data relasional dengan
demikian tidak menggunakan bahasa SQL.
👾 NoSQL menggunakan volume data yang besar.
👾 Dalam lingkungan terdistribusi (data menyebar ke mesin
yang berbeda), kita menggunakan NoSQL tanpa ketidaksesuaian.
👾 Jika ada kesalahan atau kegagalan ada di setiap mesin,
maka dalam hal ini tidak akan ada penghentian pekerjaan.
👾 NoSQL adalah database open source, yaitu kode sumbernya
tersedia untuk semua orang dan bebas menggunakannya tanpa overhead.
👾 Memungkinkan data NoSQL untuk menyimpan dalam catatan
yang tidak memiliki apapun skema tetap. NoSQL tidak menggunakan konsep ACID
properti.
👾 NoSQL adalah horizontal scalable menyebabkan kinerja
tinggi dalam cara linear. Hal ini memiliki struktur yang lebih fleksibel.
7. Beberapa Database NoSQL
- MongoDB merupakan
database open source berbasis dokumen (Document-Oriented Database) yang awalnya
dibuat dengan bahasa C++.
- Cassandra Apache dikembangkan oleh APACHE. Aplikasi Inilah
yang digunakan facebook untuk penyimpanan miliayaran data hingga saat ini.
- CouchDB juga dikembangkan oleh APACHE. CouchDB adalah
database yang benar-benar merangkul web. Menyimpan data Anda dengan dokumen
JSON.
8. Hubungan MapReduce dengan NoSQL
Untuk mengebangkan dan menjalankan aplikasi
MapReduce dapat menggunakan Hadoop. 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.
Konsep Hadoop itu seperti NoSQL. di google banyak menyimpan
file-file , termaksud file gambar dan video , disini lah hubungan antara nosql
dengan hadoop.


Resource:
Komentar
Posting Komentar