Tuesday 17 April 2018

MapReduce: Cara Sederhana untuk Memroses Data Besar

Internet merupakan pusat informasi yang besar. Tiap saat orang-orang mengirimkan fotonya ke Instagram, mengirimkan curhatan mereka ke Twitter, dan mencari referensi untuk makan malam di Google. Data yang mereka proses banyak sekali. Membutuhkan waktu yang lama dan ruang yang besar agar dapat memproses data dengan jumlah besar.

Muncullah ide dari engineer Google untuk mempercepat proses tersebut dan megurangi beban penyimpanan. Mereka menamai metode tersebut MapReduce. MapReduce adalah framework atau model pemrograman yang terdiri atas dua fungsi, yaitu fungs untuk memproses data key/value pair dan fungsi untuk menggabungkan hasilnya menjadi satu.

Ide ini terinspirasi dari fungsi map dan reduce milik Lisp dan beberapa bahasa pemrograman fungsional lainnya. Fungsi map bertugas untuk menerapkan suatu operasi terhadap seluruh elemen pada array dan fungsi reduce bertugas untuk mereduksi suatu data jika data tersebut memiliki key yang sama.

Secara umum, proses yang terjadi pada MapReduce adalah sebagai berikut:

  1. Program menerima input dalam bentuk key/value pairs
  2. Kemudian, fungsi map menyebar input tersebut ke tiap processor untuk diolah sehingga tiap processor menghasilkan data key/value pairs yang baru.
  3. Selanjutnya, hasil data key/value pair dari tiap processor diterima oleh fungsi reduce untuk dicek dan menggabungkan data dengan key yang sama.

Pseudo-code penggunaan MapReduce pada kasus untuk menghitung frekuensi kemunculan suatu kata pada dokumen besar adalah seperti berikut:

map(String key, String value):
//key: document name
//value: document content
for each word w in value:
EmitIntermediate(w, “1”);

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));

Dari pseudo-code di atas, fungsi map akan menuliskan kata yang ditemuinya dan menghitung kemunculannya (pada contoh di atas hanya “1”). Kemudian fungsi reduce akan menjumlahkan semua kemunculannya dari tiap kata.

Beberapa contoh penggunaan MapReduce lainnya adalah distributed grep dan menghitung frekuensi akses suatu URL.

Untuk saat ini, MapReduce sudah tidak digunakan oleh Google. Kita bisa lihat implementasinya pada Hadoop, project open source milik Apache yang khusus menangani Big Data.


MapReduce milik Hadoop sedikit berbeda dari Google. MapReduce miliki Hadoop mendukung fungsi partitioning untuk mempartisi data yang diolah. Kemudian juga mendukung fungsi combiner untuk menggabungkan data dengan key yang sama di area lokal (penggabungan dilakukan oleh masing-masing processor).

1 comment:

  1. Situs BOLAVITA Kini Hadir di INDONESIA , Dengan ODDS yang Tinggi - Pasaran yang Lengkap dan Proses DEPOSIT & WITHDRAW Kurang dari 3 Menit !!!

    Dan Nikmati Bonus Promo Kami !!!
    BONUS NEW MEMBER 5.000.000 RUPIAH

    Promo Cashback 5-10% yang di bagikan Besok Setiap Hari Selasa   
    Dapatkan Banyak Lagi Bonus" Yang Sangat Menarik !!!

    - Bonus Rollingan 0.5% + 0.7% ( setiap hari selasa )
    - Bonus Deposit 10% Bola,Live Casino,Sabung Ayam
    - Bonus Returning Member Freebet 200rb
    - Bonus Referal 7% + 2%
    - Bonus Cashback Tangkas 10%
    - Bonus Cashback Tembak Ikan 5%-10%
    - Promo Special 10% Sabung Ayam

    Di BOLAVITA Kami Menyediakan Banyak PERMAINAN DAN PILIHAN
    ✔️SPORTSBOOK
    ✔️VIRTUAL SPORTSBOOK
    ✔️LIVE CASINO
    ✔️ESPORTS TOURNAMENT
    ✔️SABUNG AYAM
    ✔️TOTO
    ✔️BALAP KUDA
    ✔️BALAP ANJING
    ✔️BOLA JALAN
    ✔️ALL SLOTS GAME

    Untuk Informasi Lebih Lanjut Bisa Langsung Kunjungi Website Kami
    BOLAVITA,CLUB & BOLAVITA,CC Costume Service Kami Online 24/7 !!!

    Dan Jangan Lupa saat Menghubungi Kami
    Boss Juga Bisa Kirim Via :
    Wechat : Bolavita
    WA : +62812-2222-995
    Line : cs_bolavita
    BBM PIN : BOLAVITA ( Huruf Semua )

    ReplyDelete