Isi kandungan:
Video: Hadoop Rack Awareness 2024
NameNode berfungsi sebagai buku alamat untuk Hadoop File Sistem Dikagih (HDFS) kerana ia tidak tahu hanya blok yang membentuk fail individu tetapi juga di mana setiap blok dan replika mereka disimpan. Apabila pengguna menyimpan fail dalam HDFS, fail tersebut dibahagikan kepada blok data, dan tiga salinan blok data ini disimpan dalam nod hamba di seluruh kelompok Hadoop.
Itu banyak blok data untuk dijejaki. Seperti yang anda jangkakan, mengetahui di mana mayat-mayat itu dimakamkan menjadikan NameNode merupakan komponen penting dalam kumpulan Hadoop. Jika NameNode tidak tersedia, aplikasi tidak boleh mengakses sebarang data yang disimpan dalam HDFS.
Jika anda melihat angka berikut, anda dapat melihat daemon NameNode yang berjalan pada pelayan nod master. Semua maklumat pemetaan yang berkaitan dengan blok data dan fail yang sama disimpan dalam fail bernama.
HDFS adalah sistem fail jurnal, yang bermaksud bahawa sebarang perubahan data dilog masuk jurnal edit yang menjejaki peristiwa sejak pos pemeriksaan yang terakhir - masa terakhir ketika log edit digabungkan. Dalam HDFS, jurnal edit dikekalkan dalam fail bernama yang disimpan di NameNode.
Nama dan permulaan NameNode
Untuk memahami bagaimana NameNode berfungsi, sangat berguna untuk melihat bagaimana ia bermula. Oleh sebab tujuan NameNode adalah untuk memaklumkan aplikasi tentang berapa banyak blok data yang perlu mereka proses dan untuk menjejaki lokasi yang tepat di mana mereka disimpan, ia memerlukan semua lokasi blok dan pemetaan blok-ke-fail yang tersedia dalam RAM.
Ini adalah langkah-langkah yang diambil oleh NameNode. Untuk memuatkan semua maklumat yang diperlukan oleh NameNode selepas ia dimulakan, perkara berikut akan berlaku:
-
NameNode memuatkan fail ke dalam memori.
-
NameNode memuat fail dan memainkan semula perubahan jurnal untuk mengemas kini metadata blok yang sudah ada di dalam memori.
-
DEMO DataNode menghantar laporan blok NamaNode.
Bagi setiap node hamba, terdapat satu laporan blok yang menyenaraikan semua blok data yang disimpan di sana dan menggambarkan kesihatan masing-masing.
Selepas proses permulaan selesai, NameNode mempunyai gambaran lengkap semua data yang disimpan dalam HDFS, dan ia bersedia untuk menerima permintaan permohonan dari pelanggan Hadoop.
Oleh kerana fail data ditambah dan dialih keluar berdasarkan permintaan klien, perubahan ditulis kepada jumlah cakera simpul budak, pembaruan jurnal dibuat kepada fail, dan perubahan itu tercermin pada lokasi blok dan metadata yang disimpan dalam memori NameNode.
Sepanjang hayat cluster, daemon DataNode menghantar heartbeat NameNode (isyarat pantas) setiap tiga saat, menunjukkan bahawa ia aktif.(Nilai lalai ini boleh dikonfigurasikan.) Setiap enam jam (sekali lagi, lalai dikonfigurasikan), DataNodes menghantar NameNode satu laporan blok yang menggariskan blok fail di nod mereka. Dengan cara ini, NameNode sentiasa mempunyai pandangan semasa tentang sumber yang ada dalam kelompok.
Menulis data
Untuk membuat fail baru dalam HDFS, proses berikut perlu dilakukan:
-
Pelanggan menghantar permintaan kepada NameNode untuk membuat fail baru.
NameNode menentukan berapa banyak blok diperlukan, dan klien diberikan pajakan untuk membuat blok fail baru ini dalam kumpulan. Sebagai sebahagian daripada pajakan ini, pelanggan mempunyai had masa untuk menyelesaikan tugas penciptaan. (Had masa ini memastikan bahawa ruang storan tidak diambil oleh aplikasi klien yang gagal.)
-
Pelanggan kemudian menulis salinan pertama blok fail ke nod hamba menggunakan pajakan yang diberikan oleh NameNode.
NameNode mengendalikan permintaan menulis dan menentukan di mana fail blok dan replika mereka perlu ditulis, menyeimbangkan ketersediaan dan prestasi. Salinan pertama fail blok ditulis dalam satu rak, dan salinan kedua dan ketiga ditulis pada rak yang berbeza daripada salinan pertama, tetapi dalam nod hamba yang berbeza dalam rak yang sama. Pengaturan ini mengurangkan lalu lintas rangkaian sambil memastikan tiada blok data pada titik kegagalan yang sama.
-
Seperti setiap blok dituliskan ke HDFS, satu proses khas menuliskan replika yang tinggal kepada nod budak lain yang dikenal pasti oleh NameNode.
-
Setelah daemon DataNode mengakui replika blok fail telah dibuat, aplikasi klien menutup fail dan memberitahu NameNode, yang kemudian menutup pajakan terbuka.
Data Bacaan
Untuk membaca fail dari HDFS, proses berikut akan berlaku:
-
Pelanggan menghantar permintaan kepada NameNode untuk fail.
NameNode menentukan blok yang terlibat dan pilih, berdasarkan jarak keseluruhan blok antara satu sama lain dan kepada klien, laluan akses yang paling efisien.
-
Pelanggan kemudian mengakses blok menggunakan alamat yang diberikan oleh NameNode.
Mengimbangi data dalam cluster Hadoop
Lebih dari masa, dengan kombinasi pola data-pemantauan tidak sekata (di mana beberapa nod hamba mungkin mempunyai lebih banyak data yang ditulis kepada mereka) atau kegagalan nod, data mungkin menjadi tersebar tidak merata di seluruh rak dan nod hamba dalam kumpulan Hadoop anda.
Pengedaran tidak sekata ini boleh memberi kesan buruk terhadap prestasi kerana permintaan pada nod hamba individu akan menjadi tidak seimbang; nod dengan sedikit data tidak akan digunakan sepenuhnya; dan nod dengan banyak blok akan digunakan secara berlebihan.
HDFS termasuk utiliti penyeimbang untuk mengedarkan semula blok dari node hamba yang terlalu banyak kepada yang tidak digunakan lagi sambil mengekalkan dasar meletakkan blok pada nod budak dan rak yang berbeza. Pentadbir Hadoop perlu memeriksa kesihatan HDFS secara kerap, dan jika data tidak diedarkan secara tidak wajar, mereka harus menggunakan utiliti pengimbang. NamaNode reka bentuk pelayan induk Oleh kerana sifat misi kritikalnya, pelayan induk menjalankan daemon NameNode memerlukan keperluan perkakasan yang sangat berbeza daripada yang untuk node hamba. Paling penting, komponen peringkat perusahaan perlu digunakan untuk meminimumkan kebarangkalian pemadaman. Juga, anda memerlukan RAM yang mencukupi untuk memuatkan ke dalam memori semua metadata dan data lokasi mengenai semua blok data yang disimpan dalam HDFS.