Apa itu MapReduce di Hadoop?
MapReduce adalah kerangka perisian dan model pengaturcaraan yang digunakan untuk memproses sejumlah besar data. Program MapReduce berfungsi dalam dua fasa, iaitu, Map and Reduce. Tugas peta menangani pemisahan dan pemetaan data sambil Mengurangkan tugas mengacak dan mengurangkan data.
Hadoop mampu menjalankan program MapReduce yang ditulis dalam pelbagai bahasa: Java, Ruby, Python, dan C ++. Program Pengurangan Peta dalam pengkomputeran awan adalah sejajar, jadi sangat berguna untuk melakukan analisis data berskala besar menggunakan beberapa mesin dalam kluster.
Input untuk setiap fasa adalah pasangan nilai-kunci . Sebagai tambahan, setiap pengaturcara perlu menentukan dua fungsi: fungsi peta dan fungsi pengurangan .
Dalam tutorial Hadoop MapReduce pemula ini, anda akan belajar-
- Apa itu MapReduce di Hadoop?
- Senibina MapReduce dalam Big Data dijelaskan secara terperinci
- MapReduce Architecture menerangkan secara terperinci
- Bagaimana Organisasi MapReduce Berfungsi?
Senibina MapReduce dalam Big Data dijelaskan secara terperinci
Seluruh proses melalui empat fasa pelaksanaan iaitu, membelah, memetakan, mengacak, dan mengurangi.
Sekarang dalam tutorial MapReduce ini, mari kita fahami dengan contoh MapReduce-
Pertimbangkan anda telah mengikuti data input untuk Program MapReduce in Big data
Welcome to Hadoop ClassHadoop is goodHadoop is bad
Hasil akhir dari tugas MapReduce adalah
buruk | 1 |
Kelas | 1 |
baik | 1 |
Hadoop | 3 |
adalah | 2 |
ke | 1 |
Selamat datang | 1 |
Data melalui fasa MapReduce dalam Big Data berikut
Pembahagian Input:
Input untuk pekerjaan MapReduce in Big Data dibahagikan kepada potongan ukuran tetap yang disebut input split Split input adalah sebahagian input yang digunakan oleh satu peta
Pemetaan
Ini adalah fasa pertama dalam pelaksanaan program pengurangan peta. Dalam fasa ini data dalam setiap perpecahan diteruskan ke fungsi pemetaan untuk menghasilkan nilai output. Dalam contoh kami, tugas pemetaan fasa adalah menghitung sejumlah kejadian setiap kata dari pemisahan input (perincian lebih lanjut mengenai pemisahan input diberikan di bawah) dan menyediakan senarai dalam bentuk
Berombak
Fasa ini menghabiskan output fasa Pemetaan. Tugasnya adalah menyatukan rekod yang relevan dari output fasa Pemetaan. Dalam contoh kita, perkataan yang sama digabungkan bersama dengan frekuensi masing-masing.
Mengurangkan
Dalam fasa ini, nilai output dari fasa Shuffling digabungkan. Fasa ini menggabungkan nilai dari fasa Shuffling dan mengembalikan nilai output tunggal. Ringkasnya, fasa ini merangkum kumpulan data yang lengkap.
Dalam contoh kami, fasa ini mengumpulkan nilai dari fasa Shuffling iaitu, mengira jumlah kejadian setiap perkataan.
MapReduce Architecture menerangkan secara terperinci
- Satu tugas peta dibuat untuk setiap perpecahan yang kemudian melaksanakan fungsi peta untuk setiap catatan dalam perpecahan.
- Selalu bermanfaat untuk mempunyai beberapa pemisahan kerana masa yang diperlukan untuk memproses pemisahan adalah kecil berbanding dengan masa yang diperlukan untuk memproses keseluruhan input. Apabila pemisahan lebih kecil, pemprosesan lebih baik dimuat seimbang kerana kita memproses pembelahan secara selari.
- Walau bagaimanapun, juga tidak wajar mempunyai ukuran yang terlalu kecil. Apabila perpecahan terlalu kecil, beban mengurus pembahagian tugas dan pemetaan tugas mula menguasai jumlah masa pelaksanaan pekerjaan.
- Untuk kebanyakan pekerjaan, lebih baik membuat ukuran split sama dengan ukuran blok HDFS (yang secara default adalah 64 MB).
- Pelaksanaan tugas peta menghasilkan output penulisan ke cakera tempatan pada nod masing-masing dan bukan ke HDFS.
- Sebab memilih cakera tempatan berbanding HDFS adalah, untuk mengelakkan peniruan yang berlaku sekiranya operasi kedai HDFS.
- Output peta adalah output pertengahan yang diproses dengan mengurangkan tugas untuk menghasilkan output akhir.
- Setelah tugas selesai, output peta dapat dibuang. Jadi, menyimpannya dalam HDFS dengan replikasi menjadi berlebihan.
- Sekiranya kegagalan node, sebelum output peta dimakan oleh tugas pengurangan, Hadoop menjalankan semula tugas peta pada simpul lain dan membuat semula output peta.
- Mengurangkan tugas tidak berfungsi pada konsep lokaliti data. Keluaran setiap tugas peta dimasukkan ke tugas pengurangan. Output peta dipindahkan ke mesin di mana tugas mengurangkan dijalankan.
- Pada mesin ini, output digabungkan dan kemudian diteruskan ke fungsi pengurangan yang ditentukan pengguna.
- Tidak seperti output peta, keluaran pengurangan disimpan dalam HDFS (replika pertama disimpan di simpul tempatan dan replika lain disimpan di nod luar rak). Jadi, menulis mengurangkan output
Bagaimana Organisasi MapReduce Berfungsi?
Sekarang dalam tutorial MapReduce ini, kita akan belajar bagaimana MapReduce berfungsi
Hadoop membahagikan tugas menjadi tugas. Terdapat dua jenis tugas:
- Tugas peta (Pemisahan & Pemetaan)
- Kurangkan tugas (Mengacak, Mengurangkan)
seperti yang dinyatakan di atas.
Proses pelaksanaan yang lengkap (pelaksanaan tugas Peta dan Mengurangkan, keduanya) dikendalikan oleh dua jenis entiti yang disebut a
- Jobtracker : Bertindak seperti master (bertanggungjawab untuk melaksanakan tugas yang diserahkan sepenuhnya)
- Pelbagai Tugas Pelacak : Bertindak seperti hamba, masing-masing menjalankan tugas
Untuk setiap pekerjaan yang diserahkan untuk pelaksanaan dalam sistem, ada satu Jobtracker yang berada di Namenode dan ada beberapa tasktracker yang berada di Datanode .

- Tugas dibahagikan kepada beberapa tugas yang kemudian dijalankan ke beberapa node data dalam kluster.
- Menjadi tanggungjawab pelacak pekerjaan untuk menyelaraskan aktiviti dengan menjadualkan tugas untuk dijalankan pada nod data yang berbeza.
- Pelaksanaan tugas individu kemudiannya dijaga oleh pelacak tugas, yang berada di setiap simpul data yang melaksanakan sebahagian tugas.
- Tanggungjawab pelacak tugas adalah menghantar laporan kemajuan kepada pelacak pekerjaan.
- Di samping itu, pelacak tugas secara berkala menghantar isyarat ‘degupan jantung’ kepada Jobtracker untuk memberitahunya keadaan sistem semasa.
- Oleh itu, penjejak pekerjaan mengawasi kemajuan keseluruhan setiap pekerjaan. Sekiranya kegagalan tugas, pelacak tugas dapat menjadualkannya semula pada pelacak tugas yang berbeza.