Video: How to Install Hadoop on Windows 2024
HDFS'de bir dosyayı sakladığınızda, sistem bir dizi ayrı bloğa böler ve bu blokları Hadoop kümesindeki çeşitli bağımlı düğümlerde saklar. Tüm dosya sistemleri, dosyaları diske kaydetmeden önce bloklara ayırdığı için bu tamamen normal bir işlemdir.
HDFS, dosyanın içinde ne saklandığını bilmiyor (umursamıyor), bu nedenle ham dosyalar, insanların anlayabileceği kurallara uygun olarak bölünmüyor. Örneğin, insanlar, kayıt sınırları - bir kaydın başladığı ve bittiği çizgileri - saygı görmek ister.
HDFS genellikle bir bloğun son kaydının yalnızca kısmi bir kayıt olabileceği ve içeriğinin geri kalanı aşağıdaki bloğa gönderildiğinden habersizdir. HDFS, sadece dosyaların Hadoop örneği için önceden tanımlanmış blok boyutuyla eşleşen (boyutlandırılmayan dosyalar için özel bir değer girilmediği sürece) eşit boyutlu bloklara ayrıldığından emin olmak istemektedir. Önceki resimde, bu blok boyutu 128MB'tır.
Saklamak için gereken her dosya, sisteminizin blok boyutunun tam katıdır, bu nedenle bir dosyanın son veri bloğu yalnızca ihtiyaç duyulan kadar alan kullanır. Önceki örnekte, verilerin son bloğu 1MB'tır.
Bir dosyayı bir blok kümesi olarak depolamak kavramı, dosya sistemlerinin normal olarak nasıl çalıştığıyla tamamen uyumludur. Fakat HDFS'den farkı ölçektir. Linux'ta bir dosya sisteminde gördüğünüz tipik bir blok boyutu 4KB iken, Hadoop'ta tipik bir blok boyutu 128MB'tır. Bu değer yapılandırılabilir ve hem yeni bir sistem varsayılanı hem de tek tek dosyalar için özel bir değer olarak özelleştirilebilir.
Hadoop, ölçeklendirme için olası herhangi bir kısıtlamanın en aza indirgentiği petabayt skalasında verileri depolamak için tasarlandı. Yüksek blok boyutu, verileri büyük ölçekte depolamanın doğrudan bir sonucudur.
Her şeyden önce, HDFS'de depolanan her veri bloğunun kendi meta verisi vardır ve merkezi bir sunucu tarafından izlenmesi gerekir; böylece belirli bir dosyaya erişmek için gereken uygulamalar, tüm dosyaların blokları saklandığı yere yönlendirilebilir. Blok boyutu kilobayt aralığında olsaydı, terabayt ölçekte az miktarda veri bile izlemek için çok fazla blok içeren meta veri sunucusunu zorlardı.
İkinci olarak, HDFS yüksek veri akışını sağlamak üzere tasarlanmıştır, böylece bu geniş veri kümelerinin paralel işlemesi mümkün olduğunca çabuk gerçekleşir. Hadoop'un veri işleme tarafındaki ölçeklenebilirliğinin anahtarı, her zaman, paralellik olacaktır - bu büyük dosyaların ayrı ayrı bloklarını paralel olarak işleme yeteneği.
Etkin işlemeyi sağlamak için bir dengenin oluşturulması gerekir. Bir taraftan, blok boyutu, tek bir veri işleme birimine ayrılmış kaynakları (örneğin, bir harita veya azaltma görevi) garanti edecek kadar büyük olmalıdır. Öte yandan, blok boyutu o kadar büyük olamaz ki, sistem bir son veri işleme birimi için işini bitirmek için çok uzun süre beklemektedir.
Bu iki husus açık biçimde veri bloklarında yapılması gereken iş türüne bağlıdır.