hadoop hdfs hadoop distributed file system
Bu Eğitimde Hadoop HDFS - Hadoop Dağıtılmış Dosya Sistemi, Bileşenleri ve Küme Mimarisi Açıklanmaktadır. Ayrıca Raf Farkındalık Algoritması hakkında bilgi edineceksiniz:
Önceki eğiticide öğrendiğimiz gibi, Büyük Veri ile ilgili en büyük sorun, onu mevcut bir sistemde depolamaktır. Ve bir şekilde onun bir kısmını mevcut bir sistemde saklasak bile, bu BigData'yı işlemek yıllar aldı.
Dakikalar içinde istediğiniz sonuçlar haftalarca veya belki aylarca sürdü ve bu nedenle bu sonucun değeri kayboldu.
=> Basit Büyük Veri Eğitim Serisini Buradan İzleyin.
Ne öğreneceksin:
Hadoop Dağıtılmış Dosya Sistemi
Bu sorunu çözmek veya bu sorunu çözmek için artık HADOOP'a sahibiz. Hadoop bu büyük veri sorununu kullanarak çözdü Hadoop HDFS.
Hadoop HDFS Büyük Verinin depolama sorununu çözdü ve Hadoop Harita Küçültme Büyük Verinin işlenmesiyle ilgili sorunları çözdü.
Şimdi, Hadoop'un aslında Dağıtılmış bir Dosya Sistemine sahip olduğunu biliyoruz… AMA NEDEN?
android için iyi bir mp3 indirici nedir
Hadoop neden Dağıtılmış bir Dosya Sistemidir?
Dağıtılmış Dosya Sisteminin ne olduğunu anlamaya çalışalım ve Dağıtılmış Dosya Sisteminin avantajlarını anlayalım.
Dağıtılmış Dosya Sistemi
1 TB veri okumaya bir örnek verelim. 4 G / Ç (Giriş Çıkış) kanalı olan ve her kanalın bant genişliği 100MB / s olan iyi bir üst düzey sunucu olan bir sunucumuz var, bu makineyi kullanarak bu 1TB veriyi 43 saniyede okuyabileceksiniz. Dakika.
Şimdi tam olarak bunun gibi 10 adet makine getirirsek ne olur?
Zaman tam olarak 4,3 dakikaya indirildi. Bunun nedeni, tüm çabanın 10 makineye bölünmesi ve bu nedenle 1 TB veriyi işlemek için harcanan sürenin 1 / 10'a düşmesidir.inciyani 4,3 dakika.
Benzer şekilde, BigData'yı düşündüğümüzde, bu veriler birden fazla veri parçasına bölünür ve biz bu verileri aslında ayrı ayrı işleriz ve bu nedenle Hadoop, Merkezi Dosya Sistemi yerine Dağıtılmış Dosya Sistemini seçmiştir.
Hadoop Bileşenleri
Hadoop HDFS, BigData ile ilgili sorunları çözmek için 2 ana bileşene sahiptir.
- İlk bileşen, Büyük Verileri depolamak için Hadoop HDFS'dir.
- İkinci bileşen, Büyük Verileri İşlemek için Hadoop Haritası Azaltma'dır.
Şimdi Hadoop'un mimarisini (aşağıda verilen resim) gördüğümüzde, sol kanadın olduğu yerde iki kanadı var. 'Depolama' ve sağcı 'İşleme' . Bu, sol kanadın HDFS, yani Hadoop Dağıtım Dosya Sistemi ve sağ kanadın YARN ve Harita Azaltma, yani işleme kısmı olduğu anlamına gelir.
Hadoop, HDFS'yi kullanarak Büyük Verileri depolamamızı ve YARN & Map Reduce'u kullanarak, Hadoop, HDFS'de depoladığımız aynı Büyük Verileri işlememizi sağlar.
Yukarıdaki görüntüde görebileceğiniz gibi, HDFS'nin iki ana arka planı vardır veya bunları işlemler veya iş parçacıkları olarak adlandırabilirsiniz, bunlar JAVA işlemlerinden başka bir şey değildir, yani bir JVM - NameNode ve DataNode içinde çalışır.
NameNode, Ana Makine üzerinde çalışan bir ana arka plan programıdır, yani temelde üst düzey bir makine ve DataNode, emtia donanımı üzerinde çalışan bir Bağımlı Makinedir. Bağımlı Makineler bir Ana Makineden daha fazlası olduğu için daha fazla DataNode olabilir.
Bu nedenle, Slave Makinelerde çalışan bir NameNode ve birden fazla DataNode'umuz var.
Benzer şekilde, diğer tarafta yine iki artalan süreci olan YARN var, biri Ana Makine üzerinde çalışan Kaynak Yöneticisi ve Veri Düğümü gibi Bağımlı Makine üzerinde çalışan Düğüm Yöneticisi. Yani her Slave Makinesinin iki arka plan yordamı vardır - biri DataNode ve diğeri Node Manager'dır.
Ana Makinede NameNode çalışıyor ve Kaynak Yöneticisi çalışıyor. NameNode, Hadoop Dağıtılmış Dosya Sistemindeki verilerin yönetilmesinden sorumludur ve Kaynak Yöneticisi, bu depolanan veriler üzerinde işleme görevlerini yürütmekten sorumludur.
NameNode ve DataNode
HDFS mimarisinin derinliklerine ineceğiz ve bu nedenle, bir NameNode ve bir DataNode'un ne olduğunu anlamak önemlidir, çünkü bunlar aslında HDFS'yi tamamen çalıştıran iki ana arka plan yordamıdır.
İsim Düğüm
- Bu bir Üstat Daemon'dur.
- DataNode'ların yönetimi ve bakımı.
- Meta verileri kaydeder.
- Tüm DataNode'lardan kalp atışı ve blok raporları alır.
Veri Düğümü
- Bu bir Slave Daemon'dur.
- Gerçek veriler burada saklanır.
- İstemcilerden gelen okuma ve yazma taleplerine hizmet eder.
Gördüğünüz gibi sadece Şemaya odaklanın, orada bulunan çeşitli DataNode'ları kontrol eden bir Merkezi Makine Adı Düğümü, yani emtia donanımı var. Yani Ad Düğümü, tüm DataNode'u koruyan Ana Daemon'dan başka bir şey değildir.
Bu NameNode, DataNode'da depolanan verilerle ilgili tüm bilgilere sahiptir. DataNode, adından da anlaşılacağı gibi, Hadoop Kümesinde bulunan verileri depolar.
NameNode yalnızca hangi DataNode'da hangi verilerin depolandığına ilişkin bilgilere sahiptir. Yani, diyebileceğimiz şey, NameNode'un DataNode'larda depolanan verilerin meta verilerini depolamasıdır.
DataNode ayrıca başka bir görev daha yapar, yani kalp atışını düzenli olarak NameNode'a geri gönderir. Kalp atışları aslında NameNode'a bu DataNode'un hala hayatta olduğunu söyler.
Örneğin, DataNodes, NameNode'a bir kalp atışı gönderir ve bu şekilde NameNode, bu DataNode'ların canlı olduğu resmine sahip olur, böylece NameNode bu DataNode'u daha fazla veri depolamak veya bu DataNode'lardan gelen verileri okumak için kullanabilir.
Şimdi DataNode'a geliyoruz, DataNode, Hadoop Kümesine gönderilen verileri depolayan Slave Daemon'larından başka bir şey değildir. Bu DataNode'lar, istemciler tarafından yapılan okuma ve yazma talebine gerçekte hizmet edenlerdir.
Birisi verileri Hadoop Kümesinden okumak isterse, bu istekler gerçekte verilerin bulunduğu DataNode'lar tarafından işlenir.
Hadoop Küme Mimarisi
NameNode ve DataNode ile ilgili bir önceki konuda, terimini kullandık 'Hadoop Kümesi'. Tam olarak ne olduğuna hızlı bir göz atalım.
Yukarıdaki görüntü bir Hadoop Küme Mimarisine genel bakışı göstermektedir. Hadoop Kümesi, üstte görebileceğiniz gibi Hadoop Kümesi gibi bir Ana Makine bulunan bir Master-Slave Topolojisinden başka bir şey değildir. Bu Ana Makinede, bir Ad Düğümü ve Ana Arka Planlar gibi çalışan Kaynak Yöneticisi vardır.
Ana Makine, Çekirdek Anahtarlar kullanılarak tüm Bağımlı Makineye bağlanır, çünkü bu Veri Düğümleri aslında çeşitli raflarda depolanır, böylece Bilgisayar 1, Bilgisayar 2, Bilgisayar 3'ü Bilgisayar N'ye kadar görebilirsiniz. Bu, Bağımlı Makineden başka bir şey değildir. Makineler veya DataNode'lar ve hepsi tek bir rafta bulunur.
'Raf, aslında fiziksel olarak belirli bir konumda bulunan ve birbirine bağlı bir makine grubudur.'
Böylece, her makine arasındaki ağ bant genişliği mümkün olduğunca minimumdur. Benzer şekilde, daha fazla raf var, ancak aynı yerde mevcut değiller, bu nedenle 'n' sayıda rafımız olabilir ve bu raflarda 'n' sayıda DataNode veya bilgisayar veya Bağımlı Makineye sahip olabiliriz.
Bu, Bağımlı Makinelerin gerçekte küme üzerinde nasıl dağıtıldığıdır, ancak aynı zamanda birbirlerine bağlıdırlar.
Veriler HDFS'de Nasıl Depolanır?
Şimdi yavaşça HDFS'nin nasıl çalıştığının ayrıntılarına geçiyoruz. Burada HDFS'nin mimarisini keşfedeceğiz.
HDFS'de bir dosya depolamak dediğimizde, veriler HDFS'de Bloklar olarak depolanır. Dosyanın tamamı HDFS'de depolanmaz, çünkü bildiğiniz gibi Hadoop bir Dağıtılmış Dosya Sistemi'dir.
Dolayısıyla, belki 1 PB (Peta Byte) dosya boyutuna sahipseniz, bu tür bir depolama, Hadoop kümesi ticari donanım kullanılarak yapıldığından tek bir makinede mevcut değildir. Tek bir makinedeki donanım 1 TB veya 2 TB civarında olacaktır.
Bu nedenle, tüm dosyanın HDFS Blokları adı verilen veri yığınlarına bölünmesi gerekir.
- Her dosya HDFS'de Bloklar olarak saklanır.
- Her bloğun varsayılan boyutu Apache Hadoop 2.x'te yaklaşık 128 MB'dir (ve önceki sürümde 64mb, yani Apache Hadoop 1.x).
- Hadoop paketi ile birlikte gelen hdfssite.xml gibi yapılandırma dosyasını kullanarak blokların dosya boyutunu artırma veya azaltma olanağı vardır.
Bu mekanizmayı anlamak için bir örnek alalım ve bu blokların nasıl oluşturulduğunu görelim.
Burada 248 MB'lık bir dosyayı ele alalım, şimdi bu dosyayı kırarsak veya bu dosyayı Hadoop Kümesine yani 2.x'e taşırsak, bu dosya bir bloğa, yani 128 MB'lık A Bloğu ve başka bir B Bloğu 120 MB.
Gördüğünüz gibi ilk blok 128 MB'dir, yani ilk blok orayı keser ve bu nedenle diğer blok 120 MB'dir ve 128 MB değildir, yani kalan dosya boyutu daha küçükse herhangi bir alan israf etmez. varsayılan blok boyutundan daha fazla.
Şimdi önümüzde başka bir sorun var, yani her bloğun tek bir kopyasına sahip olmak güvenli mi?
varsayılan ağ geçidi mevcut değildir Windows 10
Cevap HAYIR çünkü sistemin başarısız olma ihtimali var ve bu, büyük bir sorun yaşayabileceğimiz emtia donanımından başka bir şey değil. Bu sorunun üstesinden gelmek için Hadoop HDFS'nin iyi bir çözümü var, örn. 'Bloğun Kopyalanması'.
Hadoop Mimarisi Blok Çoğaltma
Hadoop, Hadoop Dağıtılmış Dosya Sisteminde depolanan her bloğun kopyasını oluşturur ve bu, Hadoop'un Hata Toleranslı bir Sistemidir, yani sisteminiz başarısız olsa veya DataNode başarısız olsa veya bir kopya kaybolsa bile, birden fazla başka kopyaya sahip olacaksınız. diğer DataNode'larda veya diğer sunucularda bulunur, böylece bu kopyaları her zaman oradan seçebilirsiniz.
Blok Çoğaltmayı temsil eden yukarıdaki diyagramda görüldüğü gibi, bir dosyanın beş farklı bloğu vardır, yani Blok 1, 2,3,4,5. Önce Blok 1'i kontrol edelim ve Düğüm 1, Düğüm 2 ve Düğüm 4'te Blok 1'in kopyalarını bulacaksınız.
Benzer şekilde, Blok 2 de üç kopyaya sahiptir, yani Düğüm 2, Düğüm 3 ve Düğüm 4 ve bu nedenle ilgili Düğümlerdeki Blok 3, 4 ve 5 için aynıdır.
Bu nedenle, oluşturulan kopyaların yanı sıra, her blok üç kez çoğaltılmıştır, yani Hadoop varsayılan olarak üç çoğaltma faktörünü izler, bu da Hadoop Dağıtım Dosya Sistemine kopyaladığınız herhangi bir dosyanın üç kez çoğaltılacağı anlamına gelir.
Başka bir deyişle, 1 GB'lik bir dosyayı Hadoop Dağıtım Dosya Sistemine kopyalarsanız, aslında 3 GB'lık bir dosyayı HDFS'de depolar. İşin iyi yanı, varsayılan çoğaltma faktörünün Hadoop'un yapılandırma dosyalarında bir değişiklik yapılarak değiştirilebilir olmasıdır.
Hadoop, kopyaları nerede depolayacağına nasıl karar veriyor?
Hadoop, bir Bloğun hangi kopyasının nerede saklanacağına karar vermek için aslında Raf Farkındalığı kavramını takip eder.
Aşağıda, Raf Farkındalık Algoritmasını gösteren diyagram verilmiştir.
Üç farklı Raf vardır, yani Raf-1, Raf-2 ve Raf-3.
Rack-1'in dört DataNode'u vardır ve aynı şekilde Rack-2 ve Rack-3 de vardır, bu nedenle toplamda tüm Hadoop Cluster üç raftan oluşacak ve 12 DataNode olacaktır.
Diyelim ki Blok A, Raf-1'deki DataNode 1'e kopyalandı, Raf Farkındalığı konseptine göre Blok A'nın kopyası aynı rafta oluşturulamaz ve Raf-1 dışında başka bir rafta oluşturulması gerekir. ana dosya zaten Rack-1'de mevcut.
Aynı Raf-1'de Blok A'nın kopyalarını oluşturursak ve tüm Raf-1'in arızalanması durumunda verileri kesin olarak kaybedeceğiz, bu nedenle replikaların başka herhangi bir rafta saklanması gerekir, ancak Raf-1'de depolanmaması gerekir.
Bu nedenle kopya, Rack-2'nin DataNode 6 ve 8'de oluşturulacak. Benzer şekilde, Blok B ve Blok C için, kopyalar, yukarıdaki diyagramda gösterildiği gibi farklı raflarda oluşturulacaktır.
Sonuç
Bu eğitimden aşağıdaki işaretçilerle öğrendik:
- Hadoop HDFS, BigData'nın depolama sorununu çözer.
- Hadoop Map Reduce, BigData'nın işlenmesiyle ilgili sorunları çözer.
- NameNode bir Ana Daemon'dur ve DataNode'ları yönetmek ve sürdürmek için kullanılır.
- DataNode bir Slave Daemon'dur ve gerçek veriler burada saklanır. İstemcilerden gelen isteklerin okunmasına ve yazılmasına hizmet eder.
- Hadoop Kümesinde, raf aslında fiziksel olarak belirli bir konumda bulunan ve birbirine bağlı bir makine grubudur.
- Her dosya HDFS'de Bloklar olarak saklanır.
- Her bloğun varsayılan boyutu Apache Hadoop 2.x'te yaklaşık 128 MB'dir (önceki sürümde 64 MB, yani Apache Hadoop 1.x)
- Hadoop paketi ile birlikte gelen hdfssite.xml gibi yapılandırma dosyasını kullanarak blokların dosya boyutunu artırma veya azaltma olanağı vardır.
Bir sonraki HDFS eğitiminde, HDFS mimarisi ve Okuma ve Yazma Mekanizmaları hakkında bilgi edineceğiz.
=> BigData Eğitim Serisini Herkes İçin Görmek İçin Burayı Ziyaret Edin.
Önerilen Kaynaklar
- Hadoop nedir? Yeni Başlayanlar İçin Apache Hadoop Eğitimi
- Unix'te Dosya Manipülasyonu: Unix Dosya Sistemine Genel Bakış
- Dosya Manipülasyonu için Unix Özel Karakterleri veya Metakarakterleri
- Unix Dosya Erişim İzinleri: Unix Chmod, Chown ve Chgrp
- Ranorex Test Suite, Test Modülü Oluşturma, Kullanıcı Kodu Dosyası, Xpath ve Veri Bağlama
- VBScript Dosya Nesneleri: CopyFile, DeleteFile, OpenTextFile, Read and Write Text File
- C ++ 'da Dosya Giriş Çıkış İşlemleri
- Java Dağıtımı: Java JAR Dosyasının Oluşturulması ve Yürütülmesi