Daftar Isi:
- Untuk memahami bagaimana cara kerja NameNode, ada baiknya untuk melihat bagaimana cara kerjanya. Karena tujuan dari NameNode adalah menginformasikan aplikasi tentang berapa banyak blok data yang mereka butuhkan untuk diproses dan untuk melacak lokasi yang tepat dimana mereka disimpan, diperlukan semua lokasi blok dan pemetaan block-to-file yang tersedia di RAM.
- Untuk membuat file baru di HDFS, proses berikut harus dilakukan:
- Untuk membaca file dari HDFS, proses berikut harus dilakukan:
- Seiring berjalannya waktu, dengan kombinasi pola penyebaran data yang tidak merata (di mana beberapa node budak mungkin memiliki lebih banyak data yang ditulis untuk mereka) atau kegagalan node, data kemungkinan akan didistribusikan secara tidak merata di rak dan simpul budak di cluster Hadoop Anda.
- Karena sifat misinya yang kritis, server master yang menjalankan daemon NameNode membutuhkan persyaratan perangkat keras yang berbeda dari yang ada pada node slave. Yang paling penting, komponen tingkat perusahaan perlu digunakan untuk meminimalkan kemungkinan pemadaman listrik. Selain itu, Anda memerlukan cukup RAM untuk memuat ke memori semua data metadata dan lokasi tentang semua blok data yang tersimpan dalam HDFS.
Video: Cara Melacak Pemilik Nomor Hp Seseorang Serta Lacak Posisinya 2024
NameNode bertindak sebagai buku alamat untuk Hadoop Distributed File System (HDFS) karena ia tidak tahu hanya blok yang membentuk file individual tapi juga di mana masing-masing blok dan replika mereka disimpan. Ketika pengguna menyimpan file di HDFS, file dibagi menjadi blok data, dan tiga salinan blok data ini disimpan di simpul budak di seluruh cluster Hadoop.
Itu banyak blok data untuk dilacak. Seperti yang Anda duga, mengetahui di mana mayat dikuburkan membuat NameNode menjadi komponen penting dalam kelompok Hadoop. Jika NameNode tidak tersedia, aplikasi tidak dapat mengakses data apa pun yang tersimpan dalam HDFS.
HDFS adalah sistem berkas journaling, yang berarti bahwa setiap perubahan data dicatat dalam jurnal edit yang melacak kejadian sejak pos terakhir
- terakhir saat log edit digabungkan. Di HDFS, jurnal edit disimpan dalam file bernama yang tersimpan di NameNode.
Untuk memahami bagaimana cara kerja NameNode, ada baiknya untuk melihat bagaimana cara kerjanya. Karena tujuan dari NameNode adalah menginformasikan aplikasi tentang berapa banyak blok data yang mereka butuhkan untuk diproses dan untuk melacak lokasi yang tepat dimana mereka disimpan, diperlukan semua lokasi blok dan pemetaan block-to-file yang tersedia di RAM.
Inilah langkah-langkah yang dibutuhkan NameNode. Untuk memuat semua informasi yang dibutuhkan NameNode setelah dijalankan, berikut ini akan terjadi:
-
NameNode memuat file dan memutar ulang perubahan jurnal untuk memperbarui metadata blok yang sudah ada di memori.
-
daemon DataNode mengirim laporan blok NameNode.
-
Untuk setiap simpul budak, ada laporan blok yang mencantumkan semua blok data yang tersimpan di sana dan menggambarkan kesehatan masing-masing.
Setelah proses startup selesai, NameNode memiliki gambaran lengkap tentang semua data yang tersimpan dalam HDFS, dan siap untuk menerima permintaan aplikasi dari klien Hadoop.
Saat file data ditambahkan dan dihapus berdasarkan permintaan klien, perubahan tersebut ditulis ke volume disk slave node, pembaruan jurnal dibuat ke file, dan perubahannya tercermin di lokasi blok dan metadata yang tersimpan dalam memori NameNode..
Sepanjang kehidupan cluster, daemon DataNode mengirim detak jantung NameNode (sinyal cepat) setiap tiga detik, menunjukkan bahwa mereka aktif.(Nilai default ini bisa dikonfigurasi.) Setiap enam jam (sekali lagi, sebuah konfigurasi yang dapat dikonfigurasi), DataNodes mengirimkan laporan blok NameNode yang menguraikan blok file mana yang berada di simpul mereka. Dengan cara ini, NameNode selalu memiliki pandangan terkini tentang sumber daya yang ada di cluster.
Menulis data
Untuk membuat file baru di HDFS, proses berikut harus dilakukan:
Klien mengirim permintaan ke NameNode untuk membuat file baru.
-
NameNode menentukan berapa banyak blok yang dibutuhkan, dan klien diberi
lease untuk membuat blok berkas baru ini di cluster. Sebagai bagian dari sewa ini, klien memiliki batas waktu untuk menyelesaikan tugas pembuatannya. (Batas waktu ini memastikan bahwa ruang penyimpanan tidak diambil oleh aplikasi klien yang gagal.) Klien kemudian menulis salinan pertama dari blok file ke node budak dengan menggunakan kode yang diberi nama NameNode.
-
NameNode menangani permintaan menulis dan menentukan di mana blok file dan replika mereka perlu ditulis, menyeimbangkan ketersediaan dan kinerja. Salinan pertama dari sebuah blok file ditulis dalam satu rak, dan salinan kedua dan ketiga ditulis di rak yang berbeda dari pada salinan pertama, namun di dalam node budak yang berbeda di rak yang sama. Pengaturan ini meminimalkan lalu lintas jaringan sambil memastikan bahwa tidak ada blok data yang berada pada titik kegagalan yang sama.
Karena setiap blok ditulis ke HDFS, sebuah proses khusus menulis replika yang tersisa ke node budak lainnya yang diidentifikasi oleh NameNode.
-
Setelah daemon DataNode mengetahui replika blokir file telah dibuat, aplikasi klien akan menutup file dan memberitahukan NameNode, yang kemudian menutup sewa terbuka.
-
Membaca Data
Untuk membaca file dari HDFS, proses berikut harus dilakukan:
Klien mengirimkan permintaan ke NameNode untuk sebuah file.
-
NameNode menentukan blok mana yang terlibat dan dipilih, berdasarkan jarak keseluruhan blok satu sama lain dan ke klien, jalur akses yang paling efisien.
Klien kemudian mengakses blok menggunakan alamat yang diberikan oleh NameNode.
-
Menyeimbangkan data dalam cluster Hadoop
Seiring berjalannya waktu, dengan kombinasi pola penyebaran data yang tidak merata (di mana beberapa node budak mungkin memiliki lebih banyak data yang ditulis untuk mereka) atau kegagalan node, data kemungkinan akan didistribusikan secara tidak merata di rak dan simpul budak di cluster Hadoop Anda.
Distribusi yang tidak merata ini dapat berdampak buruk pada kinerja karena permintaan pada node budak individu akan menjadi tidak seimbang; Simpul dengan sedikit data tidak akan sepenuhnya digunakan; dan node dengan banyak blok akan digunakan secara berlebihan. (Catatan: Penggunaan berlebihan dan penggunaan dasar didasarkan pada aktivitas disk, tidak pada CPU atau RAM.
Desain server induk NameNode