Beranda
Topics
MapReduce
Diperbarui: 19 November 2024
Kontributor: Jim Holdsworth, Matthew Kosinski
MapReduce adalah model pemrograman yang menggunakan pemrosesan paralel untuk mempercepat pemrosesan data skala besar. MapReduce memungkinkan skalabilitas besar-besaran di ratusan atau ribuan server dalam cluster Hadoop.
Nama "MapReduce" mengacu pada 2 tugas yang dilakukan model untuk membantu "memotong" tugas pemrosesan data yang besar menjadi banyak tugas yang lebih kecil yang dapat berjalan lebih cepat secara paralel.
Model pemrograman MapReduce adalah salah satu komponen pemrosesan inti di jantung Apache Hadoop, kerangka kerja sumber terbuka yang didukung oleh Apache Software Foundation dan dibangun di atas bahasa pemrograman Java.
Model MapReduce juga dapat digunakan di luar Hadoop.
Pelajari cara menemukan fondasi data terbuka dan tepercaya yang tepat untuk kebutuhan bisnis Anda.
MapReduce membantu membagi proyek pemrosesan data menjadi bagian-bagian yang lebih kecil sehingga dapat berjalan lebih cepat.
Menggunakan satu prosesor untuk menganalisis file besar dengan terabyte atau petabyte data mungkin, misalnya, memakan waktu 10 jam. Pekerjaan MapReduce dapat membagi file data yang sama menjadi 10 tugas yang berjalan secara paralel pada 10 prosesor. Pekerjaan ini mungkin hanya membutuhkan waktu satu jam atau kurang untuk dijalankan. Data dapat dikumpulkan dari node komputasi terdistribusi untuk menghasilkan hasil.
Meskipun pemetaan dan pengurangan adalah fungsi penting dari model MapReduce, keseluruhan prosesnya mencakup beberapa langkah lagi.
Aplikasi MapReduce menerima data input, yang dapat mencakup data terstruktur atau tidak terstruktur. Aplikasi MapReduce biasanya bekerja dengan file input yang disimpan dalam sistem file terdistribusi Hadoop (HDFS), tetapi model dapat bekerja dengan sumber data lain juga. (Untuk informasi lebih lanjut, lihat “MapReduce dalam ekosistem Hadoop.”)
Untuk pekerjaan tertentu, kerangka kerja MapReduce membantu memilih server terdistribusi, mengelola komunikasi dan transfer data dan mendukung toleransi kesalahan dan redundansi.
Data input dibagi menjadi blok yang lebih kecil. Blok-blok ini didistribusikan ke pemeta—fungsi yang melakukan pemetaan pada langkah selanjutnya—yang terletak di berbagai node komputasi. Kerangka kerja MapReduce bertujuan untuk penugasan data yang kira-kira seragam di seluruh pemetaan untuk penyeimbangan beban yang efisien.
Pada setiap node, fungsi peta memproses data yang diterimanya, mengubah data menjadi pasangan kunci/nilai.
Jumlah total pemeta ditentukan dalam kerangka kerja Hadoop, berdasarkan total volume data dan blok memori yang tersedia pada setiap pemeta. Parameter untuk pemetaan, reduksi dan hasil dapat diatur dalam cluster Hadoop.
Kerangka kerja Hadoop mengurutkan hasil peta dan menetapkan semua pasangan kunci/nilai dengan kunci "yang sama" (topik) ke pereduksi yang sama. Contohnya, dalam kumpulan data kota dan suhu tinggi hariannya, semua data dengan kunci "Tokyo" akan masuk ke peredam yang sama.
Peredam, seperti namanya, adalah fungsi yang melakukan langkah pengurangan.
Fungsi kurangi memproses pasangan kunci/nilai yang dipancarkan pemetaan. Hal ini dapat melibatkan penggabungan, tabulasi, atau melakukan operasi lain pada data, tergantung pada jenis pemrosesan yang diperlukan.
Pemetaan dan pengurangan dapat dilakukan pada set server yang sama, tetapi ini opsional.
Setiap peredam mengeluarkan hasil pengolahannya ke HDFS atau toko data lainnya.
Tidak peduli berapa banyak data yang ingin dianalisis oleh organisasi, prinsip-prinsip utamanya tetap sama.
Untuk contoh ini, kumpulan data mencakup kota (kunci) dan suhu harian terkait (nilai) yang direkam untuk setiap kota. Contoh pasangan kunci/nilai mungkin terlihat seperti ini: <Toronto, 18>.
Data tersebar di beberapa file. Setiap file mungkin menyertakan data dari campuran kota, dan mungkin menyertakan kota yang sama beberapa kali.
Dari kumpulan data ini, pengguna ingin mengidentifikasi "suhu maksimum" untuk setiap kota di seluruh periode yang dilacak.
Implementasi MapReduce untuk menangani pekerjaan ini mungkin terlihat seperti ini:
Ekosistem Hadoop adalah rangkaian modul sumber terbuka yang dirancang untuk bekerja sama untuk meningkatkan efisiensi. Ada modul yang merupakan kerangka kerja Hadoop utama, termasuk MapReduce ditambah 3 lainnya:
HDFS adalah sistem file terdistribusi untuk menyimpan data aplikasi di hingga ribuan server komoditas.
HDFS dirancang untuk memberikan toleransi kesalahan untuk Hadoop dan menyediakan akses cepat ke data. Secara default, blok data direplikasi di beberapa node pada waktu pemuatan atau penulisan.
Arsitektur HDFS memiliki fitur NameNode untuk mengelola ruang nama sistem file dan akses file, bersama dengan beberapa DataNode untuk mengelola penyimpanan data.
Sumber terbuka Apache Hadoop, YARN, adalah kerangka kerja untuk penjadwalan pekerjaan dan manajemen Sumber daya cluster. Mendukung berbagai beban kerja, seperti SQL Query, pemodelan tingkat lanjut, dan streaming waktu nyata.
Modul ini adalah kumpulan utilitas sumber daya dan pustaka yang mendukung modul Hadoop lainnya. Juga dikenal sebagai Hadoop Core, ini mencakup beberapa sumber daya untuk pemulihan kegagalan otomatis, abstraksi tingkat sistem file dan tingkat sistem operasi, file dan skrip Java Archive (JAR), dan masih banyak lagi.
Selain kerangka kerja Hadoop utama, ekosistem Hadoop juga mencakup:
Pemrograman MapReduce menawarkan beberapa manfaat yang dapat membantu organisasi mendapatkan insight berharga dari big data, seperti:
MapReduce dapat secara efisien menangani banyak contoh penggunaan langsung, meskipun tugas pemrosesan data yang kompleks mungkin berjalan lebih cepat pada aplikasi lain. Berikut adalah beberapa aplikasi yang cocok untuk pendekatan pemrosesan paralel MapReduce:
Paradigma pemrograman MapReduce diciptakan pada tahun 2004 oleh ilmuwan komputer Google, Jeffery Dean dan Sanjay Ghemawat. Tujuan dari model MapReduce adalah untuk menyederhanakan transformasi dan analisis kumpulan data besar melalui pemrosesan paralel besar-besaran pada kelompok besar perangkat keras komoditas. Hal ini juga memungkinkan programmer untuk fokus pada algoritma daripada manajemen data.
Sementara Google memperkenalkan kerangka kerja MapReduce pertama, Apache Hadoop MapReduce mungkin yang paling populer.
MapReduce memainkan peran kunci dalam memajukan big data, tetapi memiliki kekurangan. Sebagai contoh, data biasanya tidak disimpan dalam memori oleh MapReduce, dan logika iteratif hanya dapat dilakukan dengan merantai aplikasi MapReduce secara bersamaan. Faktor-faktor ini menambah kompleksitas yang lebih besar dan dapat menyebabkan waktu pemrosesan yang lebih lama.
Sementara MapReduce tetap banyak digunakan — terutama di sistem legacy — banyak organisasi beralih ke kerangka kerja yang lebih cepat atau lebih khusus, seperti Apache Spark, untuk aplikasi big data.
Rancang strategi data yang menghilangkan silo data, mengurangi kompleksitas, dan meningkatkan kualitas data untuk pengalaman pelanggan dan karyawan yang luar biasa.
watsonx.data memungkinkan Anda untuk menskalakan analitik dan AI dengan semua data Anda, di mana pun data berada, melalui penyimpanan data yang terbuka, hybrid, dan diatur.
Buka nilai data perusahaan dengan IBM Consulting, membangun organisasi berbasis insight yang memberikan keuntungan bisnis.
Pelajari manfaatnya bekerja dengan data lakehouse, termasuk data yang lebih dapat dipercaya dan eksekusi proyek analitik dan AI yang lebih andal.
Panduan pemimpin data untuk membangun organisasi berbasis data untuk meningkatkan keuntungan bisnis.
Apache Hadoop adalah kerangka perangkat lunak sumber terbuka yang menyediakan pemrosesan terdistribusi kumpulan data besar yang sangat andal menggunakan model pemrograman sederhana.