Apa itu MapReduce di Hadoop? Arsitektur - Contoh

Daftar Isi:

Anonim

Apa itu MapReduce di Hadoop?

MapReduce adalah kerangka perangkat lunak dan model pemrograman yang digunakan untuk memproses data dalam jumlah besar. Program MapReduce bekerja dalam dua tahap, yaitu Map dan Reduce. Tugas peta menangani pemisahan dan pemetaan data sementara Kurangi tugas mengocok dan mengurangi data.

Hadoop mampu menjalankan program MapReduce yang ditulis dalam berbagai bahasa: Java, Ruby, Python, dan C ++. Program Map Reduce dalam komputasi awan bersifat paralel, sehingga sangat berguna untuk melakukan analisis data skala besar menggunakan beberapa mesin dalam kluster.

Input untuk setiap fase adalah pasangan nilai kunci . Selain itu, setiap programmer perlu menentukan dua fungsi: fungsi peta dan fungsi pengurangan .

Dalam tutorial Hadoop MapReduce pemula ini, Anda akan belajar-

  • Apa itu MapReduce di Hadoop?
  • Arsitektur MapReduce dalam Big Data dijelaskan secara rinci
  • Arsitektur MapReduce dijelaskan secara rinci
  • Bagaimana MapReduce Mengatur Kerja?

Arsitektur MapReduce dalam Big Data dijelaskan secara rinci

Keseluruhan proses melalui empat tahap pelaksanaan yaitu pemisahan, pemetaan, pengocokan, dan pengurangan.

Sekarang dalam tutorial MapReduce ini, mari kita pahami dengan contoh MapReduce-

Anggap Anda telah mengikuti data masukan untuk MapReduce Anda di Program Big data

Welcome to Hadoop ClassHadoop is goodHadoop is bad

Arsitektur MapReduce

Output akhir dari tugas MapReduce adalah

buruk 1
Kelas 1
baik 1
Hadoop 3
aku s 2
untuk 1
Selamat datang 1

Data tersebut melewati fase MapReduce dalam Big Data berikut

Pemisahan Input:

Input ke MapReduce dalam pekerjaan Big Data dibagi menjadi potongan-potongan berukuran tetap yang disebut input split. Input split adalah potongan input yang digunakan oleh satu peta

Pemetaan

Ini adalah tahap pertama dalam pelaksanaan program pengurangan peta. Dalam fase ini data di setiap split diteruskan ke fungsi pemetaan untuk menghasilkan nilai keluaran. Dalam contoh kami, tugas fase pemetaan adalah menghitung jumlah kemunculan setiap kata dari input split (lebih detail tentang input-split diberikan di bawah) dan menyiapkan daftar dalam bentuk

Mengocok

Fase ini menggunakan output dari fase Pemetaan. Tugasnya adalah mengkonsolidasikan catatan yang relevan dari keluaran fase Pemetaan. Dalam contoh kita, kata-kata yang sama dikelompokkan bersama dengan frekuensinya masing-masing.

Mengurangi

Dalam fase ini, nilai output dari fase Shuffling diagregasikan. Fase ini menggabungkan nilai dari fase Shuffling dan mengembalikan nilai output tunggal. Singkatnya, fase ini merangkum kumpulan data lengkap.

Dalam contoh kami, fase ini menggabungkan nilai-nilai dari fase Pengacakan, yaitu menghitung kemunculan total setiap kata.

Arsitektur MapReduce dijelaskan secara rinci

  • Satu tugas peta dibuat untuk setiap pemisahan yang kemudian menjalankan fungsi peta untuk setiap rekaman dalam pemisahan tersebut.
  • Itu selalu menguntungkan untuk memiliki beberapa pemisahan karena waktu yang dibutuhkan untuk memproses pemisahan kecil dibandingkan dengan waktu yang dibutuhkan untuk memproses seluruh input. Ketika pemisahan lebih kecil, pemrosesan lebih baik memuat seimbang karena kami memproses pemisahan secara paralel.
  • Namun, juga tidak diinginkan untuk memiliki ukuran split yang terlalu kecil. Jika pemisahan terlalu kecil, kelebihan pengelolaan pemisahan dan pembuatan tugas peta mulai mendominasi total waktu eksekusi tugas.
  • Untuk sebagian besar pekerjaan, lebih baik membuat ukuran terpisah sama dengan ukuran blok HDFS (yaitu 64 MB, secara default).
  • Eksekusi tugas peta menghasilkan output penulisan ke disk lokal pada node masing-masing dan bukan ke HDFS.
  • Alasan memilih disk lokal daripada HDFS adalah, untuk menghindari replikasi yang terjadi jika operasi penyimpanan HDFS.
  • Keluaran peta merupakan keluaran antara yang diolah dengan tugas-tugas pengurangan untuk menghasilkan keluaran akhir.
  • Setelah pekerjaan selesai, keluaran peta dapat dibuang. Jadi, menyimpannya dalam HDFS dengan replikasi menjadi berlebihan.
  • Jika terjadi kegagalan node, sebelum output peta dikonsumsi oleh tugas pengurangan, Hadoop menjalankan ulang tugas peta pada node lain dan membuat ulang output peta.
  • Kurangi tugas tidak berfungsi pada konsep lokalitas data. Output dari setiap tugas peta diumpankan ke tugas pengurangan. Output peta ditransfer ke mesin tempat pengurangan tugas sedang berjalan.
  • Di mesin ini, output digabungkan dan kemudian diteruskan ke fungsi pengurangan yang ditentukan pengguna.
  • Berbeda dengan keluaran peta, pengurangan keluaran disimpan di HDFS (replika pertama disimpan di simpul lokal dan replika lainnya disimpan di simpul luar rak). Jadi, menulis output yang dikurangi

Bagaimana MapReduce Mengatur Kerja?

Sekarang dalam tutorial MapReduce ini, kita akan mempelajari cara kerja MapReduce

Hadoop membagi pekerjaan menjadi beberapa tugas. Ada dua jenis tugas:

  1. Tugas peta (Split & Pemetaan)
  2. Kurangi tugas (Mengocok, Mengurangi)

seperti disebutkan di atas.

Proses eksekusi lengkap (eksekusi tugas Map dan Reduce, keduanya) dikendalikan oleh dua jenis entitas yang disebut a

  1. Jobtracker : Bertindak seperti master (bertanggung jawab untuk menyelesaikan pekerjaan yang dikirimkan)
  2. Pelacak Tugas Ganda : Bertindak seperti budak, masing-masing melakukan pekerjaan

Untuk setiap pekerjaan yang dikirimkan untuk dieksekusi di sistem, ada satu Jobtracker yang berada di Namenode dan ada beberapa pelacak tugas yang berada di Datanode .

Cara Kerja Hadoop MapReduce
  • Sebuah pekerjaan dibagi menjadi beberapa tugas yang kemudian dijalankan ke beberapa node data dalam sebuah cluster.
  • Merupakan tanggung jawab pelacak pekerjaan untuk mengoordinasikan aktivitas dengan menjadwalkan tugas untuk dijalankan pada node data yang berbeda.
  • Pelaksanaan tugas individu kemudian harus dijaga oleh pelacak tugas, yang berada di setiap node data yang menjalankan bagian dari pekerjaan tersebut.
  • Tanggung jawab pelacak tugas adalah mengirimkan laporan kemajuan ke pelacak pekerjaan.
  • Selain itu, pelacak tugas secara berkala mengirimkan sinyal 'detak jantung' ke Jobtracker untuk memberi tahu status sistem saat ini.
  • Jadi pelacak pekerjaan melacak kemajuan keseluruhan dari setiap pekerjaan. Jika terjadi kegagalan tugas, pelacak pekerjaan dapat menjadwalkan ulang di pelacak tugas yang berbeda.