Di pasar berbasis data saat ini, algoritma dan aplikasi perlu mengumpulkan data 24/7 tentang pengguna, proses, sistem, dan organisasi, sehingga menghasilkan volume data yang sangat besar. Namun, tantangannya adalah bagaimana memproses data dalam jumlah besar ini dengan kecepatan dan efisiensi, serta tanpa mengorbankan wawasan yang berarti.
Di sinilah model pemrograman MapReduce datang untuk menyelamatkan. MapReduce awalnya digunakan oleh Google untuk menganalisis hasil pencariannya, dan sekarang mendapatkan popularitas besar karena kemampuannya dalam membagi dan memproses terabyte data secara paralel dengan lebih cepat.
Baca Juga: Apa Itu Apache Hadoop?
Apa itu MapReduce?
MapReduce adalah paradigma pemrograman yang memungkinkan skalabilitas besar-besaran di ratusan atau ribuan server dalam cluster Hadoop. Sebagai komponen pemrosesan, MapReduce adalah jantung dari Apache Hadoop. Istilah "MapReduce" mengacu pada dua tugas terpisah dan berbeda yang dilakukan oleh program Hadoop. Pertama adalah map job, yang mengambil satu set data dan mengubahnya menjadi set data lain, di mana elemen individual dipecah menjadi tupel (sepasang key value).
Setelah itu, reduce job akan mengambil output dari peta sebagai input, kemudian menggabungkan tupel data tersebut ke dalam kumpulan tupel yang lebih kecil. Seperti yang disiratkan oleh urutan nama MapReduce, reduce job selalu dilakukan setelah map job.
Pemrograman MapReduce menawarkan beberapa manfaat untuk membantu Anda mendapatkan wawasan berharga dari big data Anda:
1. Skalabilitas. Bisnis dapat memproses petabyte data yang disimpan di Hadoop Distributed File System (HDFS).
2. Fleksibilitas. Hadoop memungkinkan akses yang lebih mudah ke berbagai sumber data dan berbagai jenis data.
3. Kecepatan. Dengan pemrosesan paralel dan pergerakan data minimal, Hadoop menawarkan pemrosesan data dalam jumlah besar dengan cepat.
4. Sederhana. Developer dapat menulis kode dalam pilihan bahasa, termasuk Java, C++ dan Python.
Bagaimana Cara Kerja MapReduce?
Setelah mengetahui apa itu MapReduce, selanjutnya kita akan mempelajari bagaimanacara kerja alat ini. Hadoop membagi pekerjaan MapReduce menjadi beberapa tugas. Seperti yang sudah disebutkan sebelumnya, ada dua jenis tugas, yaitu:
1. Map job (pemisahan & pemetaan).
2. Reduce job (shuffling & mengurangi).
Proses eksekusi keduanya dikendalikan oleh dua jenis entitas yang disebut sebagai:
1. Job Tracker: Bertindak seperti master (bertanggung jawab untuk menyelesaikan pekerjaan yang dikirimkan).
2. Multiple Task Trackers: Bertindak seperti slave, masing-masing melakukan pekerjaan tersebut.
Untuk setiap pekerjaan yang dikirimkan untuk dieksekusi dalam sistem, ada satu job tracker yang berada di Namenode dan ada beberapa task tracker yang berada di Datanode.
Pekerjaan ini dibagi menjadi beberapa tugas yang kemudian dijalankan ke beberapa datanode dalam sebuah cluster. Ini adalah tanggung jawab job tracker untuk mengoordinasikan aktivitas dengan menjadwalkan tugas untuk dijalankan pada data node yang berbeda.
Eksekusi tugas individu kemudian dijaga oleh task tracker, yang berada di setiap data node yang menjalankan bagian dari pekerjaan tersebut. Tanggung jawab task tracker adalah mengirim laporan kemajuan ke job tracker.
Selain itu, task tracker secara berkala mengirimkan sinyal 'detak jantung' ke job tracker untuk memberi tahu dia tentang status sistem saat ini. Jadi, job tracker akan melacak kemajuan keseluruhan setiap pekerjaan. Jika terjadi kegagalan tugas, job tracker dapat melakukan re-schedule pada setiap task tracker yang berbeda.
Contoh Kasus Penggunaan MapReduce
Coba Anda bayangkan, sistem e-commerce menerima satu juta permintaan setiap harnyai untuk memproses pembayaran. Mungkin ada beberapa pengecualian yang diberikan selama permintaan ini seperti "pembayaran ditolak oleh payment gateway", "persediaan habis", dan "alamat tidak valid". Developer perlu menganalisis log empat hari terakhir untuk memahami pengecualian mana yang dilemparkan berapa kali.
Tujuannya adalah untuk mengisolasi kasus penggunaan yang paling rentan terhadap kesalahan, dan untuk mengambil tindakan yang tepat. Misalnya, jika payment gateway yang sama sering mengeluarkan pengecualian, apakah itu karena layanan yang tidak dapat diandalkan atau interface yang ditulis dengan buruk? Jika pengecualian "out of inventory" sering dilontarkan, apakah berarti layanan penghitungan persediaan harus ditingkatkan, atau apakah stok persediaan perlu ditambah untuk produk tertentu?
Developer dapat mengajukan pertanyaan yang relevan dan menentukan tindakan yang tepat. Untuk melakukan analisis ini pada log yang lebih besar dengan jutaan catatan, MapReduce adalah model pemrograman yang tepat. Beberapa mappers dapat memproses log ini secara bersamaan. Satu mapper dapat memproses log dalam sehari atau sebagian darinya berdasarkan ukuran log dan blok memori yang tersedia untuk diproses di server mapper.
Mau Berita Terbaru Lainnya dari Warta Ekonomi? Yuk Follow Kami di Google News dengan Klik Simbol Bintang.
Penulis: Patrick Trusto Jati Wibowo
Editor: Alfi Dinilhaq
Tag Terkait: