HBase
 sql >> Teknologi Basis Data >  >> NoSQL >> HBase

Cara Kerja Hadoop – Pahami Cara Kerja Hadoop

Ingin tahu bagaimana sebenarnya Hadoop menyimpan dan memproses data dalam jumlah besar?

Pada artikel ini, kita akan mempelajari bagaimana Hadoop bekerja secara Internal. Kita akan melihat bagaimana Hadoop menyimpan dan memproses kumpulan data besar. Artikel tersebut menjelaskan secara rinci tentang cara kerja Hadoop. Artikel pertama memberikan pengantar singkat tentang Hadoop.

Kemudian kita akan melihat komponen inti Hadoop dan Daemon berjalan di cluster Hadoop. Artikel tersebut kemudian menjelaskan cara kerja Hadoop yang mencakup semua komponen intinya seperti HDFS, MapReduce, dan YARN.

Jadi mari kita lihat dulu pengenalan singkat Hadoop.

Pengantar Hadoop

Dengan meningkatnya data besar, Apache Software Foundation pada tahun 2008 mengembangkan kerangka kerja sumber terbuka yang dikenal sebagai Apache Hadoop, yang merupakan solusi untuk semua masalah data besar.

Apache Hadoop adalah kerangka kerja yang dapat menyimpan dan memproses sejumlah besar data tidak terstruktur mulai dari ukuran terabyte hingga petabyte. Ini adalah sistem yang sangat toleran terhadap kesalahan dan sangat tersedia.

Hadoop menyimpan sejumlah besar data secara terdistribusi di HDFS. Hadoop MapReduce adalah unit pemrosesan di Hadoop, yang memproses data secara paralel.

Hadoop YARN adalah komponen inti lain dalam kerangka Hadoop, yang bertanggung jawab untuk mengelola sumber daya di antara aplikasi yang berjalan di cluster dan menjadwalkan tugas.

Sebelum mempelajari cara kerja Hadoop secara internal, mari kita lihat dulu komponen utama dan daemon Hadoop.

Komponen dan Daemon Hadoop

Hadoop terdiri dari tiga komponen utama yaitu HDFS, MapReduce, dan YARN.

1. Hadoop HDFS

Ini adalah lapisan penyimpanan untuk Hadoop. Sistem File Terdistribusi Hadoop menyimpan data di berbagai node dalam sebuah cluster. Ini membagi data menjadi blok dan menyimpannya di node yang berbeda. Ukuran blok adalah 128 MB secara default . Kami dapat mengonfigurasi ukuran blok sesuai kebutuhan kami.

2. Hadoop MapReduce

Ini adalah lapisan pemrosesan di Hadoop. Hadoop MapReduce memproses data yang disimpan di Hadoop HDFS secara paralel di berbagai node dalam cluster. Ini membagi tugas yang diajukan oleh pengguna menjadi tugas independen dan memprosesnya sebagai subtugas di seluruh perangkat keras komoditas.

3. Benang Hadoop

Ini adalah lapisan manajemen sumber daya dan proses Hadoop. YARN bertanggung jawab untuk berbagi sumber daya di antara aplikasi yang berjalan di cluster dan menjadwalkan tugas di cluster.

Ini adalah tiga komponen inti di Hadoop.

Daemon berjalan di Hadoop Cluster

Ada beberapa Daemon yang berjalan di Hadoop Cluster. Daemon adalah proses ringan yang berjalan di latar belakang.

Beberapa Daemon berjalan di node Master dan beberapa di node Slave. Mari kita pelajari Hadoop Daemons.

Daemon Hadoop utama adalah:

1. Master Daemon

  • NameNode: Ini adalah Daemon master di Hadoop HDFS. Itu mempertahankan ruang nama sistem file. Ini menyimpan metadata tentang setiap blok file.
  • Pengelola Sumber Daya: Ini adalah daemon utama dari YARN. Ini menengahi sumber daya di antara semua aplikasi yang berjalan di cluster.

2. Daemon Budak

  • DataNode: DataNode adalah daemon budak dari Hadoop HDFS. Ini berjalan pada mesin budak. Ini menyimpan data atau blok aktual.
  • Pengelola Node: Ini adalah daemon budak dari YARN. Ini menangani semua node komputasi individu dalam cluster.

Bagaimana Hadoop bekerja?

Hadoop menyimpan dan memproses data secara terdistribusi di seluruh cluster perangkat keras komoditas. Untuk menyimpan dan memproses data apa pun, klien mengirimkan data dan program ke cluster Hadoop.

Hadoop HDFS menyimpan data, MapReduce memproses data yang disimpan dalam HDFS, dan YARN membagi tugas dan menetapkan sumber daya.

Sekarang mari kita lihat komponen ini secara detail.

1. HDFS

Data di Hadoop disimpan di Sistem File Terdistribusi Hadoop. Ada dua daemon yang berjalan di Hadoop HDFS yaitu NameNode dan DataNode.

a. NameNode

NameNode adalah daemon utama di HDFS. Ini berjalan pada node master. Itu mempertahankan ruang nama sistem file. NameNode tidak menyimpan data aktual. Ini menyimpan metadata, seperti informasi tentang blok file, izin file, lokasi blok, dll.

NameNode mengelola DataNode dan memberikan instruksi kepada mereka. NameNode menerima detak jantung dari DataNodes setiap 3 detik, yang menunjukkan bahwa DataNode masih hidup.

b. DataNode

DataNode adalah daemon budak di HDFS. DataNodes adalah node budak yang menyimpan data bisnis yang sebenarnya. Mereka bertanggung jawab untuk melayani permintaan baca/tulis klien berdasarkan instruksi dari NameNode. DataNodes mengirim pesan detak jantung ke NameNode untuk memastikan bahwa mereka hidup.

c. Node Nama Sekunder

Ini adalah daemon lain di Hadoop HDFS. Ini adalah node pembantu untuk NameNode utama. NameNode Sekunder mengunduh log edit dan file Fsimage dari NameNode utama dan secara berkala menerapkan log edit ke Fsimage .

Kemudian mengirimkan kembali file Fsimage yang diperbarui ke NameNode. Jadi, jika NameNode utama gagal, penyimpanan terakhir Fsimage pada NameNode sekunder digunakan untuk memulihkan metadata sistem file.

Setiap kali klien ingin membaca atau menulis data ke Hadoop HDFS, pertama-tama klien berinteraksi dengan NameNode. NameNode pertama-tama memeriksa hak istimewa klien, dan jika klien memiliki hak istimewa yang memadai, NameNode memberikan alamat DataNode tempat klien dapat membaca atau menulis data.

File klien di HDFS dibagi menjadi beberapa blok. Ukuran blok adalah 128 MB secara default. DataNode menyimpan blok file. Untuk memberikan toleransi kesalahan, HDFS membuat replika blok tergantung pada faktor replikasi.

Secara default faktor replikasi adalah 3, yang berarti 3 salinan blok disimpan dalam HDFS. HDFS menyimpan replika blok pada DataNodes yang berbeda dengan mengikuti algoritme Kesadaran Rak.

Selama pembacaan file, jika ada DataNode yang down, NameNode memberikan alamat DataNode lain yang berisi replika blok dari mana klien dapat membaca datanya tanpa downtime.

2. Pengurangan Peta

MapReduce adalah lapisan pemrosesan di Hadoop. Ini memproses data secara paralel di beberapa mesin di cluster. Ia bekerja dengan membagi tugas menjadi subtugas independen dan mengeksekusinya secara paralel di berbagai DataNode.

MapReduce memproses data menjadi dua fase, yaitu fase Peta dan Fase pengurangan . Input dan output dari kedua fase adalah pasangan kunci, nilai. Jenis kunci, pasangan nilai ditentukan oleh programmer melalui kelas InputFormat . Secara default, format input teks digunakan.

Pemrogram menentukan dua fungsi, yaitu fungsi peta dan fungsi pengurangan . Dalam fungsi peta, programmer menulis logika bisnis untuk memproses data.

Dalam fungsi Reduce, programmer menulis logika untuk meringkas dan menggabungkan output antara dari fungsi peta dan menghasilkan output.

Kerja Hadoop MapReduce

Setiap kali klien ingin melakukan pemrosesan apa pun pada datanya di cluster Hadoop, maka pertama-tama klien menyimpan data di Hadoop HDFS dan kemudian menulis program MapReduce untuk memproses Data. Hadoop MapReduce berfungsi sebagai berikut:

1. Hadoop membagi pekerjaan menjadi dua jenis tugas, yaitu memetakan tugas dan mengurangi tugas. YARN menjadwalkan tugas-tugas ini (yang akan kita lihat nanti di artikel ini). Tugas ini berjalan pada DataNodes yang berbeda.

2. Input ke pekerjaan MapReduce dibagi menjadi potongan-potongan berukuran tetap yang disebut input split.

3. Satu tugas peta yang menjalankan fungsi peta yang ditentukan pengguna untuk setiap record dalam pemisahan input dibuat untuk setiap pemisahan input. Tugas peta ini berjalan di DataNodes tempat data input berada.

4. Keluaran dari tugas peta adalah keluaran antara dan ditulis ke disk lokal.

5. Output antara tugas peta dikocok dan diurutkan dan kemudian diteruskan ke peredam.

6. Untuk satu tugas pengurangan, output perantara yang diurutkan dari mapper diteruskan ke node tempat tugas peredam berjalan. Keluaran ini kemudian digabungkan dan kemudian diteruskan ke fungsi pengurangan yang ditentukan pengguna.

7. Fungsi reduksi meringkas output dari mapper dan menghasilkan output. Keluaran peredam disimpan di HDFS.

8. Untuk beberapa fungsi reduksi, pengguna menentukan jumlah reduksi. Ketika ada beberapa tugas pengurangan, tugas peta akan mempartisi outputnya, membuat satu partisi untuk setiap tugas pengurangan.

BENANG

YARN adalah lapisan manajemen sumber daya di Hadoop. Ini menjadwalkan tugas di cluster Hadoop dan menetapkan sumber daya ke aplikasi yang berjalan di cluster. Ini bertanggung jawab untuk menyediakan sumber daya komputasi yang diperlukan untuk menjalankan aplikasi.

Ada dua daemon YARN yang berjalan di cluster Hadoop untuk melayani layanan inti YARN. Mereka adalah:

a. Manajer Sumber Daya

Ini adalah daemon utama dari YARN. Ini berjalan pada node master per cluster untuk mengelola sumber daya di seluruh cluster. ResourceManager memiliki dua komponen utama yaitu Scheduler dan ApplicationManager.

Penjadwal mengalokasikan sumber daya ke berbagai aplikasi yang berjalan di cluster.

ApplicationManager mengambil pekerjaan yang dikirimkan oleh klien, dan menegosiasikan container untuk mengeksekusi ApplicationMaster khusus aplikasi, dan memulai ulang container ApplicationMaster jika gagal.

b. NodeManager

NodeManager adalah daemon budak dari YARN. Ini berjalan di semua node budak di cluster. Ini bertanggung jawab untuk meluncurkan dan mengelola wadah di node. Container menjalankan proses khusus aplikasi dengan kumpulan sumber daya yang dibatasi seperti memori, CPU, dan sebagainya.

Saat NodeManager dimulai, ia mengumumkan dirinya ke ResourceManager. Secara berkala mengirimkan detak jantung ke ResourceManager. Ia menawarkan sumber daya ke cluster.

c. ApplicationMaster

ApplicationMaster per aplikasi menegosiasikan container dari penjadwal dan melacak status container dan memantau kemajuan container.

Seorang klien mengirimkan aplikasi ke ResourceManager. ResourceManager menghubungi NodeManager yang meluncurkan dan memantau container komputasi pada node dalam cluster. Wadah menjalankan ApplicationMaster.

Tugas MapReduce dan ApplicationMaster dijalankan dalam wadah yang dijadwalkan oleh ResourceManager dan dikelola oleh NodeManager.

Sekarang mari kita rangkum bagaimana Hadoop bekerja secara internal:

1. HDFS membagi data input klien ke dalam blok berukuran 128 MB. Bergantung pada faktor replikasi, replika blok dibuat. Blok dan replikanya disimpan di DataNodes yang berbeda.

2. Setelah semua blok disimpan di HDFS DataNodes, pengguna dapat memproses data.

3. Untuk memproses data, klien mengirimkan program MapReduce ke Hadoop.

4. ResourceManager kemudian menjadwalkan program yang dikirimkan oleh pengguna pada node individu dalam cluster.

5. Setelah semua node menyelesaikan pemrosesan, output ditulis kembali ke HDFS.

Ringkasan

Pada artikel ini, kami telah mempelajari seluruh cara kerja Hadoop. Saya harap setelah membaca artikel ini, Anda memahami bagaimana Hadoop menyimpan dan memproses data dalam jumlah besar.

Artikel tersebut juga menjelaskan bagaimana sumber daya dijadwalkan di antara aplikasi dalam sumber daya. Artikel tersebut menjelaskan daemon utama yang berjalan di cluster Hadoop dan komponen inti Hadoop.

Saya harap Anda memahami cara kerja Hadoop secara internal.

Terus Belajar!!


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Memperkenalkan kebijakan partisi pemadatan Apache HBase Medium Object Storage (MOB)

  2. Replikasi Apache HBase:Tinjauan Operasional

  3. Eksekusi Spekulatif di Hadoop MapReduce

  4. Apa yang Harus dan Tidak Boleh Dilakukan Apache HBase

  5. Penggabungan wilayah HBase