MapReduce: Besar dan Powerful, tapi Tidak Ribet

Dalam artikel “Big Data dan Rahasia Kejayaan Google”, telah disebutkan beberapa teknologi yang digunakan oleh Google untuk mengolah dan memberdayakan Big Data. Diantaranya adalah Google File System (GFS), Google MapReduce, dan Bigtable. Kita akan membahas ketiga teknologi ini secara lebih detail namun tetap dikemas secara sederhana, biar gak kelihatan ribet alias complicated. Langsung saja, kali ini kita akan membahas tentang apa itu MapReduce.
 
Definisi
Setiap istilah perlu definisi, dan harus ada kesepakatan akan definisi tersebut biar tidak terjadi salah pengertian ataupun salah paham diantara para pengguna istilah tersebut. MapReduce pun punya definisi. 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.

Desain dan Struktur, MapReduce itu sederhana.
Dari definisinya, MapReduce mungkin terkesan sangat ribet. Untuk memproses sebuah data raksasa, data itu harus dipotong-potong kemudian dibagi-bagikan ke tiap komputer dalam suatu cluster. Lalu proses Map dan proses Reduce pun harus dibagi-bagikan ke tiap komputer dan dijalankan secara paralel. Terus hasil akhirnya juga disimpan secara terdistribusi. Benar-benar terkesan merepotkan.
Beruntunglah, MapReduce telah didesain sangat sederhana alias simple. 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 (Gambar 1).



Gambar 1. Map dan Reduce

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 (Gambar 2). 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.



Gambar 2. Menghitung jumlah tiap kata dalam suatu dokumen.

Menjalankan Contoh Program MapReduce
Untuk lebih jelasnya lagi, kita bisa menjalankan langsung program ini di PC kita sendiri. Tetapi, bukan dengan software MapReduce milik Google. 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. Silakan simak: Menjalankan AplikasiMapReduce dengan Windows.
     2. Dengan menggunakan Hadoop mode Pseudo-Distributed pada 1 PC Linux. Silakan simak: MenjalankanHadoop mode Pseudo-Distributed dengan Linux.
      3. Dengan menggunakan Hadoop mode Terdistribusi Penuh pada beberapa PC Linux. Silakan simak: Menjalankan Hadoop mode Fully-Distributed.

Cara yang paling mudah mungkin cara yang pertama, karena dapat dilakukan pada satu PC Windows dan tidak memerlukan setting pada file konfigurasi Hadoop.
Demikian tentang MapReduce, selamat mencoba.

Referensi:
“MapReduce: Simplified Data Processing on Large Clusters”, Jeffrey Dean and Sanjay Ghemawat, Google Corp. 2004.

Artikel Terkait:

Mengaplikasikan MapReduce untuk Mencari Mutual Friends ala Facebook

Penerapan Model Pemrograman MapReduce Menggunakan Java dan MongoDB untuk Mencari Mutual Friends ala Facebook

Comments

shane lee said…
Yet, they function at unbelievable accuracies and regulations. The black hole at the center of the galaxy is like perfectly accurate. If it is a little bit more powerful, it would gulp up the entire galaxy and collapse on itself. artificial intelligence training in hyderabad
technology said…
Salesforce CRM software will help companies have a brief overview about how their competitors in the similar niche are performing and thereby helping them in developing a solution that would help in efficient management. salesforce training in bangalore
Excellent effort to make this blog more wonderful and attractive.
data analytics courses aurangabad
360DigiTMG is the most recommended Data Science course institute in Chennai. Get trained by top professionals from IIT, IIM and, ISB. Enroll now!
business analytics course in bhubaneshwar
Advance your technical skills required to crack huge datasets to bring out new possibilities from data. Join the Data Science institutes in Bangalore and get access to top industry trainers, LMS, live projects, assignments, and mock interviews to skyrocket your career in the ever- evolving field of Data Science.


Best Data Science Training institute in Bangalore
contact help said…
Great Post !! I admire the valuable information you offer in your articles. I will bookmark your blog and refer to my friends.
mytoys chat
webmaster said…
:
OVER VOLTAGE RELAY
,
POWER RELAY
,
UNDER OVER VOLTAGE RELAY
,
UNDER VOLTAGE RELAY
,
VOLAGE CONTROL RELAY.low voltage protection relay
Studylivezone said…
Thanks a lot for giving us such a helpful information. You can also visit our website for project synopsis format for mba
Arnold M said…
Good readding this post
Kenneth said…
Great post, thanks.

Popular posts from this blog

Tutorial Python: Cara Mudah Web Scraping menggunakan Beautiful Soup

Cara Sederhana Install Hadoop 2 mode Standalone pada Windows 7 dan Windows 10

Apa itu Big Data : Menyimak Kembali Definisi Big Data, Jenis Teknologi Big Data, dan Manfaat Pemberdayaan Big Data

Apache Spark: Perangkat Lunak Analisis Terpadu untuk Big Data

HBase: Hyper NoSQL Database

HDFS: Berawal dari Google untuk Big Data

Aplikasi iPhone : RETaS Read English Tanpa Kamus!

Big Data dan Rahasia Kejayaan Google

Bagaimana Cara Membaca Google Play eBook Secara Offline?