2018/05/08

Hadoop Mimarisi,HDFS,MapReduce ve Yarn Kavramı

Hadoop Mimarisi


    Hadoop java programlama dili ile yazılmış açık kaynak kodlu bir kütüphanedir.Büyük veriyi hızlı işleme ve paralel işlemek için ortaya çıkmıştır. Çok büyük boyutlarda data tutulur.

    Hadoop denilince 2 bileşenden oluşmaktadır. Bunlardan;

  1. Dağıtık Depolama : Örneğin Bozulan bir datanode'daki veriler NameNode sorarak üzerindeki verileri diğer node'a dağıtarak veri kaybını önler.
  2. Dağıtık İşlem. 
Basit sunuculardan oluşan tek bir sanal disk oluşturmayı ve paralel işlem yapabilen,bir bilgisyarda değil birçok bilgisayar üzerinde cluster olarak çalışabilen bir yapıdır.

Bu yapıyı HDFS ve MapReduce teknolojilerini kullanarak sağlar. Hadoop ucuz bir teknolojidir. Aynı zamanda her türlü dosya atılabilir. Cluster yapıda olduğu için veri kaybı en aza indirğendiğinden dolayı dayanıklı bir yapıdır.

HDFS(Hadoop Dağıtılmış Dosya Sistemi)

    Açılımı Hadoop Distribted File Sistem olarak adlandırılır.  Java tabanlı dağıtık bir dosya sistemidir. Java da olduğu gibi bir kez yaz defalarca oku mantığı üzerine kuruludur.
    Verilerin bloklar halinde tutulduğu yerdir. Dağıtık bir yapısı vardır. Kendi içerisinde 2 bilşeni vardır;

  1. NameNode
  2. DataNode
NameNode amacı dataların nerede tutulduğu,dosya sistemini ve blok adresleri tutar.Bir okuma işleminde bunun için NameNode gideriz data nerede diye buraya sorarız?. Yani metadata tutar. NameNode bozulursa datalara erişim gider. Format atılması gerekir buda veri kaybı demektir.

DataNode amacı adından da anlaşılacağı gibi verileri tutmaktır. Yazma işlemi gerçekleştireceksek direk datanode gider ve yazma işlemini gerçekleştiririz. Daha sonra DataNode gider NameNode kendisi günceller. Böylelikle dosya güncellemesi yapılmaz,ancak ekleme yapılabilir.



Hdfs blok değeri 128mb'dir.Hdfs dataları 3 farklı node kopyalayarak yedekleme işlemini gerçekleştirir. Bu değeri istediğimizde değiştirebiliriz.

Hdfs'e Ambari arayüzü,komut satırı,java interface,nfs gateway vb arayüzlerden erişilebilir.

Örnek Ambari Arayüzü;


Hdfs Default Port 50070'dir.

MapReduce

    Veri işlemek için bir programlama modelidir. İsminden de anlaşılacağı gibi MapReduce kavramı iki kısımdan oluşmaktadır;
  1. Map: Data'nın haritasını çıkardığımız kısımdır. Parçalara ayrılacak kısım olarak da adlandırılır.
  2. Reduce : Parçalanan data'yı bir alana yerleştirdiğimiz kısımdır. Hesap yapılacak kısım diye de adlandırılır.
Map işlemi bitmeden Reduce kısmına geçilmez. Parçalama yani Map işlemi bittiğinde artık data'larımız sıralanmış ve düzgün haldedir.


MapReduce'da önemli olan iki bileşen vardır;
  1. JobTracker
  2. TaskTracker
Bunlar bir tanesi client'dan gelen işi ne yapacağına karar verir, bu işlemi JobTracker denir. TaskTracker ise işin yapıldığı yerdir.
MapReduce Ram kullanmaz. Her işlemde diske yazar. Bunun için Apache Spark memory kullanımıyla MapReduce kötü ve eksik olan yönlerini gidermiş oldu.

Yarn Kavramı(Yet Another Resource Negotiator)

    Kaynak Yönetimini sağlar. Veri nerede ise kaynağı da oradan almaya çalışır. Yarn Mimarisi Hadoop teknolojisini MapReduce mahkum olmaktan kurtardı,önceden tüm kaynak yönetim işlerini de MapReduce yapıyordu.Şimdi bu işlemi Yarn Mimarisi aldı. 
Yarn Mimarisinde de 3 bileşen vardır.Bunlar;
  1. ResourceManager
  2. NodeManager
  3. ApplicationMaster
 ResourceManager önceliklere ve taleplere cevap verir,kaynak yönetiminde bulunur. ResourceManager hangi işin kimin nasıl başlatacağına karar verir ve bunu NodeManager bildirir. NodeManager ise kaynak takibi,hata raporu,log bilgisi tutar. ApplicationMaster ise gelen her uygulam için ayrılan kaynak kısmındır. Uygulama kapanınca buna ayrılan kaynak da boşa çıkar.

Yarn default por bilgisi 8088'dir.



Kaynak-1: https://zekeriyabesiroglu.com/
Kaynak-2 :  https://www.udemy.com/adan-zye-uygulamal-hadoop-buyuk-veri-egitimi/
Kaynak-3 : https://www.udemy.com/big-data-egitimi/ 




Hiç yorum yok:

Yorum Gönder