Beranda

Topics

MapReduce

Apa itu MapReduce?
Gunakan MapReduce dengan produk IBM Mendaftar untuk Buletin Think
Ilustrasi dengan kolase piktogram monitor komputer, server, awan, dan titik-titik

Diperbarui: 19 November 2024
Kontributor
: Jim Holdsworth, Matthew Kosinski

Apa itu MapReduce?

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.

  • Pertama adalah "tugas peta," yang mengambil satu set data dan mengubahnya menjadi satu set data lain yang diformat sebagai pasangan kunci/nilai, seperti kota (kunci) dan suhu tinggi harian (nilai).

  • Yang kedua adalah "tugas pengurangan," yang mengambil hasil dari tugas peta, menggabungkan semua nilai dengan kunci yang sama dan memproses data untuk menghasilkan serangkaian pasangan kunci/nilai akhir.

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.

AI membutuhkan cara baru dalam mengelola data

Pelajari cara menemukan fondasi data terbuka dan tepercaya yang tepat untuk kebutuhan bisnis Anda.

Konten terkait Daftar untuk mendapatkan panduan tentang modernisasi aplikasi
Cara kerja MapReduce

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.

Input

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.

Pemisahan
 

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.

Pemetaan
 

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.

Mengacak
 

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.

Mengurangi
 

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. 

Hasil
 

Setiap peredam mengeluarkan hasil pengolahannya ke HDFS atau toko data lainnya.

Contoh MapReduce

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:

  1. Berkas data yang berisi informasi suhu dimasukkan ke dalam aplikasi MapReduce sebagai input.

  2. File dibagi menjadi tugas peta, dengan setiap tugas ditugaskan ke salah satu pemeta.

  3. Pemetaan mengubah data menjadi pasangan kunci/nilai.

  4. Hasil peta dikocok dan diurutkan sehingga semua nilai dengan kunci kota yang sama berakhir dengan pereduksi yang sama. Sebagai contoh, semua nilai suhu untuk Toronto masuk ke satu peredam, sementara peredam lainnya menggabungkan semua nilai untuk London.

  5. Setiap peredam memproses datanya untuk menentukan nilai suhu tertinggi untuk setiap kota. Data kemudian dikurangi menjadi hanya pasangan kunci/nilai tertinggi untuk setiap kota.

  6. Setelah fase pengurangan, nilai tertinggi dapat dikumpulkan untuk menghasilkan hasil: <Tokyo, 38> < London, 27> < New York, 33> < Toronto, 32>.
MapReduce dalam ekosistem Hadoop

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:

Sistem file terdistribusi Hadoop (HDFS)
 

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.

Yet Another Resource Negotiator (YARN)
 

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.

Hadoop Common
 

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.

Modul lainnya
 

Selain kerangka kerja Hadoop utama, ekosistem Hadoop juga mencakup:

  • HBase (database NoSQL non-relasional)
  • Mahout dan Spark MLlib (library algoritma untuk machine learning)
  • Oozie (penjadwal pekerjaan)
  • Apache Hive dan Apache Pig (alat pemrosesan data berbasis kueri)
  • Solr dan Lucene (untuk mencari dan mengindeks)
  • Spark (mesin pemrosesan data dalam memori) 
  • Penjaga kebun binatang (koordinasi cluster)
Manfaat MapReduce

Pemrograman MapReduce menawarkan beberapa manfaat yang dapat membantu organisasi mendapatkan insight berharga dari big data, seperti:

  • Skalabilitas: MapReduce memungkinkan organisasi untuk memproses petabyte data yang disimpan dalam HDFS di beberapa server atau node.

  • Pemrosesan lebih cepat: Dengan pemrosesan paralel dan pergerakan data minimal, MapReduce menawarkan pengoptimalan pemrosesan big data untuk volume big data yang sangat besar.

  • Kesederhanaan: Pengembang dapat menulis aplikasi MapReduce dalam bahasa pemrograman pilihan mereka, termasuk Java, C++, dan Python.

  • Penghematan biaya: Sebagai program sumber terbuka, MapReduce dapat menghemat anggaran organisasi untuk pengeluaran perangkat lunak. Konon, masih akan ada biaya yang terkait dengan infrastruktur dan staf rekayasa data.
Contoh penggunaan MapReduce

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:

  • Integrasi data, di mana kerangka kerja MapReduce digunakan untuk menjalankan proses ekstrak, transformasi, dan muat (ETL ) untuk menyiapkan data untuk analisis dan penyimpanan.

  • Pemrosesan gambar, di mana tugas-tugas seperti klasifikasi gambar dapat dipecah menjadi kumpulan data yang lebih kecil dan diproses secara paralel.

  • Analisis log, seperti mengidentifikasi tren dengan meninjau berkas log dari server web atau aplikasi.

  • Machine learning (ML), di mana MapReduce dapat membantu tugas pelatihan ML , seperti penyaringan kolaboratif, pengelompokan k-means , dan regresi linier.

  • Analisis sentimen, di mana MapReduce dapat membantu menjumlahkan skor pelanggan di situs web atau mengidentifikasi klaster respons, misalnya.

  • Tabulasi, seperti menghitung berapa banyak pelanggan yang memperbarui akun mereka, berdasarkan negara, selama setahun terakhir.

  • Penambangan teks, seperti pekerjaan penghitungan kata yang melacak berapa kali sebuah kata muncul dalam kumpulan input tertentu, seperti papan komentar.
Sejarah 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.

Solusi terkait
Perangkat lunak dan solusi manajemen data

Rancang strategi data yang menghilangkan silo data, mengurangi kompleksitas, dan meningkatkan kualitas data untuk pengalaman pelanggan dan karyawan yang luar biasa.

Jelajahi solusi manajemen data
IBM watsonx.data

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.

Temukan watsonx.data
Layanan konsultasi data dan analitik

Buka nilai data perusahaan dengan IBM Consulting, membangun organisasi berbasis insight yang memberikan keuntungan bisnis.

Temukan layanan analitik
Sumber daya Mengelola data untuk AI dan analitik dalam skala besar

Pelajari manfaatnya bekerja dengan data lakehouse, termasuk data yang lebih dapat dipercaya dan eksekusi proyek analitik dan AI yang lebih andal.

The Data Differentiator

Panduan pemimpin data untuk membangun organisasi berbasis data untuk meningkatkan keuntungan bisnis.

Apa itu Apache Hadoop?

Apache Hadoop adalah kerangka perangkat lunak sumber terbuka yang menyediakan pemrosesan terdistribusi kumpulan data besar yang sangat andal menggunakan model pemrograman sederhana.

Ambil langkah selanjutnya

Skalakan beban kerja AI untuk semua data Anda di mana saja dengan IBM watsonx.data. Penyimpanan data yang disesuaikan untuk tujuan yang dibangun pada arsitektur terbuka data lakehouse.

Jelajahi watsonx.data Pesan demo langsung