Map Reduce dan No SQL

Tugas Cloud Computing, Database, etc.


MapReduce dan No SQL


1. Pengertian MapReduce

The MapReduce architecture.  MapReduce Algorithm There are four ...

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

What is NoSQL Database | Comprehensive Guide to NoSQL Database

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

NoSQL vs SQL: Which is Better - DOT Intern - Medium

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.
NoSQL Databases | Technology solutions | DB Best

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.

Apa itu NoSQL? Simak Pengertian NoSQL & Kegunaannya (Lengkap)

Say Hello to NoSQL Databases - Rahul Bhatia - Medium


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. 

Big Data with NoSQL, Hadoop, Spark, and Kafka – Couchbase Connect 2016
Hortonworks and Couchbase: NoSQL Fueled Hadoop | The Couchbase Blog

Resource:

Komentar

Postingan populer dari blog ini

Bisnis Informatika

Permasalahan Budaya di Indonesia