Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Bagaimana MapReduce Bekerja di Hadoop

Pengurangan Peta adalah model yang diperkenalkan oleh Google sebagai metode untuk memecahkan kelas masalah Big Data dengan sekelompok besar mesin murah. Hadoop menyerap model ini ke dalam inti proses kerjanya. Artikel ini memberikan ide pengantar model MapReduce yang digunakan oleh Hadoop dalam menyelesaikan masalah Big Data.

Ringkasan

Aplikasi Big Data khas berurusan dengan sekumpulan besar data yang dapat diskalakan. Menggunakan database tunggal untuk menyimpan dan mengambil dapat menjadi hambatan pemrosesan utama. Ini terutama benar jika kita menggunakan database monolitik untuk menyimpan sejumlah besar data seperti yang dapat kita lihat dengan database relasional dan bagaimana mereka digunakan sebagai repositori tunggal. Ini tidak akan berhasil, terutama kita harus berurusan dengan kumpulan data besar di lingkungan terdistribusi.

Google menggunakan algoritma MapReduce untuk mengatasi situasi tersebut dan memberikan solusi. Idenya adalah untuk membagi tugas yang lebih besar menjadi bagian-bagian kecil yang dapat dikelola dan mendistribusikannya ke seluruh komputer dalam jaringan untuk diproses. Hasil yang diperoleh kemudian diintegrasikan untuk membentuk dataset akhir. Ide ini menjadi dasar dari proyek Hadoop Doug Cutting. Hadoop menggunakan algoritme ini untuk memproses data secara paralel dengan yang lain untuk memberikan analisis statistik lengkap pada kumpulan data besar. Oleh karena itu, Hadoop secara garis besar dapat dibagi menjadi dua bagian:

  • Memproses: Dimanfaatkan oleh algoritme MapReduce
  • Penyimpanan: Dimanfaatkan oleh HDFS

Hadoop MapReduce dengan demikian merupakan implementasi dari algoritma yang dikembangkan dan dikelola oleh proyek Apache Hadoop. Ini bekerja seperti mesin itu sendiri di mana kami memberikan input dan mesin merespons dengan mengubah input menjadi output dengan cepat dan efisien, memproses melalui beberapa tahap. Ide yang sangat sederhana ini membutuhkan sedikit elaborasi karena mengikutinya.

MapReduce

MapReduce adalah model pemrograman paralel yang digunakan untuk pemrosesan data yang cepat dalam lingkungan aplikasi terdistribusi. Ini bekerja pada kumpulan data (data multi-terabyte) yang didistribusikan di seluruh cluster (ribuan node) di jaringan perangkat keras komoditas. Program MapReduce berjalan di Hadoop dan dapat ditulis dalam berbagai bahasa—Java, C++, Python, dan Ruby. Karakteristik prinsip dari program MapReduce adalah bahwa ia secara inheren telah menyerap semangat paralelisme ke dalam program. Ini membuatnya ideal untuk analisis data skala besar yang dapat memanfaatkan model paralelisme ke dalam praktiknya untuk memeras hasil lebih efisien dan cepat dari infrastruktur yang ada.

Cara Kerjanya

Hadoop MapReduce membagi tugas menjadi beberapa tahap, masing-masing dengan serangkaian fungsi yang signifikan untuk mengekstrak hasil yang diinginkan dari Big Data. Ini bekerja pada node dalam cluster yang dihosting di kumpulan server komoditas. Proses dimulai dengan permintaan pengguna yang menjalankan mesin MapReduce dan berakhir dengan hasilnya disimpan kembali ke HDFS.

Kita dapat memulai pekerjaan MapReduce untuk dijalankan dengan menjalankan JobClient.runJob(conf) metode. Ini adalah metode yang mudah untuk membuat JobClient baru contoh. Ini pada gilirannya memanggil submitJob() dan polling kemajuan pekerjaan setiap detik dan melaporkan kembali ke konsol jika ada perubahan sejak laporan terakhir dibuat. Ini memiliki efek riak dan memicu serangkaian operasi di belakang layar. Langkah pertama adalah menemukan dan membaca file input yang berisi data mentah. Format file arbitrer dan harus dikonversi ke format yang sesuai untuk diproses. Ini adalah pekerjaan untuk InputFormat dan Pembaca Rekaman(RR) . InputFormat menggunakan fungsi yang disebut InputSplit untuk membagi file menjadi bagian-bagian yang lebih kecil. Pembaca Perekam(RR) kemudian mengubah data mentah dan membuatnya tersedia untuk diproses oleh peta .

Pemetaan

Setelah data dapat diterima untuk dipetakan, itu membuat instance berbeda untuk setiap pasangan input (kunci dan nilai) dan mulai memproses. Segera setelah fungsi pemetaan mulai menghasilkan output, itu tidak langsung ditulis ke disk; sebagai gantinya, disimpan dalam buffer memori untuk melakukan beberapa presorting. Setiap peta mempertahankan buffer melingkar di mana ia mengarahkan output. Saat melebihi ukuran ambang batas, tumpahan konten ditulis kembali ke disk. Ini lebih lanjut membagi data ke dalam partisi yang dapat diterima oleh peredam yang selanjutnya data diarahkan. Semua pekerjaan ini, bagaimanapun, berlangsung secara simultan pada beberapa node di cluster Hadoop. Setelah menyelesaikan tugas peta, hasil antara diakumulasikan di partisi, dan pengocokan serta pengurutan dilakukan untuk mengoptimalkan keluaran agar pengurangan diambil alih sebagai masukan.

Kurangi dan Gabungkan

Apa yang dikurangi juga merupakan kunci, pasangan nilai, dan bertindak dengan cara yang sama seperti peta. Ini mengumpulkan output peta dari beberapa tugas peta di seluruh cluster dan mulai memproses hanya setelah pemetaan selesai. Ini memiliki satu set benang mesin fotokopi untuk menggabungkan dan menumpahkan ke disk output yang disediakan oleh peta. Saat salinan terakumulasi di disk, utas latar belakang melakukan pekerjaan menggabungkannya menjadi file yang lebih besar dan diurutkan. Ini juga memberikan output dalam bentuk kunci, pasangan nilai dan mungkin perlu diformat ulang oleh OutputFormat sebelum aplikasi dapat menerima format. OutputFormat akhirnya mengambil kunci, pasangan nilai dan menulis kembali data yang diproses ke HDFS. Di sini, Penulis Rekaman memainkan peran utama, seperti RecordReader , kecuali bahwa ia mengambil bagian saat membaca dari HDFS di awal.

Kesimpulan

Ini hanyalah puncak gunung es. Ada banyak detail rumit dan banyak lagi yang terjadi di balik layar. Singkatnya, Hadoop MapReduce menyediakan kemampuan untuk memecah Big Data menjadi bagian-bagian yang lebih kecil dan dapat dikelola, memprosesnya secara paralel pada cluster terdistribusi, dan akhirnya, membuat data tersedia untuk konsumsi atau pemrosesan tambahan. Hadoop saat ini telah berkembang menjadi ekosistem alat dan teknologi yang lebih besar untuk memecahkan masalah Big Data yang semakin tua dan berkembang dengan cepat untuk menyempurnakan fitur-fiturnya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menutupi Tabel dan Mempertahankan Integritas Referensial

  2. T-SQL Selasa #65 :Mengajarkan Sesuatu yang Baru

  3. Cara Menginstal Klien SQL SQuirrel

  4. Memahami Apa yang Sebenarnya Diperbarui oleh sp_updatestats

  5. Cara Mengotomatiskan Tugas Pemeliharaan Database SQL menggunakan SQLCMD