Video: How does a blockchain work - Simply Explained 2024
Apabila anda menyimpan fail dalam HDFS, sistem memecahnya ke dalam satu set blok individu dan menyimpan blok ini dalam pelbagai nod hamba dalam kelompok Hadoop. Ini adalah perkara yang biasa dilakukan, kerana semua sistem fail memecah fail ke dalam blok sebelum menyimpannya ke cakera.
HDFS tidak tahu (dan tidak peduli) apa yang disimpan di dalam fail itu, jadi fail mentah tidak berpecah mengikut peraturan yang kita faham manusia. Manusia, sebagai contoh, mahu sempadan rekod - baris yang menunjukkan tempat rekod bermula dan berakhir - untuk dihormati.
HDFS sering tidak menyedari bahawa rekod akhir dalam satu blok mungkin hanya rekod separa, dengan kandungannya yang lain dihancurkan ke blok berikut. HDFS hanya mahu memastikan bahawa fail dibahagikan kepada blok bersaiz yang sama yang sepadan dengan saiz blok yang telah ditentukan untuk contoh Hadoop (melainkan nilai tersuai telah dimasukkan untuk fail yang disimpan). Dalam angka sebelumnya, saiz blok itu ialah 128MB.
Tidak setiap fail yang anda perlukan untuk menyimpan adalah beberapa blok saiz sistem anda, jadi blok data akhir untuk fail menggunakan hanya sebanyak ruang yang diperlukan. Dalam kes angka sebelumnya, blok terakhir data ialah 1MB.
Konsep menyimpan fail sebagai koleksi blok sepenuhnya konsisten dengan bagaimana sistem fail biasanya berfungsi. Tapi apa yang berbeza tentang HDFS ialah skala. Saiz blok biasa yang anda lihat dalam sistem fail di bawah Linux adalah 4KB, sedangkan saiz blok tipikal dalam Hadoop adalah 128MB. Nilai ini boleh dikonfigurasi, dan ia boleh disesuaikan, kerana kedua-dua sistem baru lalai dan nilai tersuai untuk fail individu.
Hadoop direka untuk menyimpan data pada skala petabyte, di mana sebarang batasan potensi untuk penskalaan diminimumkan. Ukuran blok yang tinggi adalah akibat langsung dari keperluan ini untuk menyimpan data secara besar-besaran.
Pertama sekali, setiap blok data yang disimpan dalam HDFS mempunyai metadata sendiri dan perlu dijejaki oleh pelayan pusat supaya aplikasi yang memerlukan untuk mengakses fail tertentu boleh diarahkan ke mana-mana semua blok fail disimpan. Sekiranya saiz blok berada dalam jarak kilobyte, walaupun jumlah data sederhana dalam skala terabyte akan mengatasi pelayan metadata dengan terlalu banyak blok untuk menjejaki.
Kedua, HDFS direka untuk membolehkan output tinggi supaya pemprosesan selari set data besar ini berlaku secepat mungkin. Kunci untuk skalabilitas Hadoop pada sisi pemprosesan data adalah, dan sentiasa akan menjadi, paralelisme - keupayaan untuk memproses blok individu dari fail besar selari.
Untuk membolehkan pemprosesan yang cekap, keseimbangan perlu dipukul. Di satu pihak, saiz blok perlu cukup besar untuk menjamin sumber yang didedikasikan untuk satu unit pemprosesan data (contohnya, peta atau mengurangkan tugas). Sebaliknya, saiz blok tidak boleh begitu besar sehingga sistem menunggu masa yang lama untuk satu unit pemprosesan data terakhir untuk menyelesaikan tugasnya.
Kedua-dua pertimbangan ini jelas bergantung kepada jenis kerja yang dilakukan pada blok data.