Hadoop ve Temel Bileşenleri nedir? – Bahar Uzun | Security | BigData
Posted on Haziran 14, 2018 Haziran 14, 2018 güntülüPosted in Hadoop
Büyük veri (hexabyte, petabyte seviyesinde akan veri)kümeleri ile birden fazla makinada paralel olarak işlem yapmamızı sağlayan Java ile geliştirilmiş açık kaynak kodlu bir kütüphane.Hadoop HDFS ve MapReduce iki bölümü var.Hadoop(HDFS )dosyaları bloklara ayırıp saklar. Hadoop(MapReduce) saklanan verilerimizi işliyor.
Şekilde görüldüğü gibi makinaların birbirine paralel bağlanmasına cluster denir.Cluster da saklama işlemleri çoklanarak kayıt edilir.( Replication Factor).Şekli açıklayalım;5 makina var biri master modunda diğerleri slave ,amaç aynı işi 5 kat daha hızlı yapmak.Yapacağınız işin senaryosuna göre makina sayısı azaltılabilir ya da arttırılabilir .Bir bakıma thread mantığına kısmi benziyor diyebiliriz.
Şekilde bir dosyamız var ve 5 bloğa ayrılmış ve 5 makinamız var(Node1 gibi).Şöyle baktığımız da D bloğu 1.makina , 2.makina ve 4.makina da var.Bir cluster da 3 farklı makina da bulunduğu için replication factor:3 diyebiliriz yani 3 defa kopyalanmış.Bu durumun avantajına bakacak olursak elektrik gittiğinde ,sistem çöktüğünde ya da makinalardan biri kullanılamaz hale geldiğinde sonuç itibari bütün kötü olasılıkları düşünürsek :)) ,B verisi yok olmuyor çünkü 3.ve 5. makinada da kopyalanmış.
Hadoop 4 bölümden oluşur .
HDFS(Hadoop Distirbuted File System):Hadoop içerisinde büyük verileri sakladığımız bileşene denir.Sıradan sunucuların diskleri biraraya gelerek tek bir sanal disk oluşturarak oluştururlar.
Hadoop common: Bazı modüllerin hadoop’a erişebilmesi için gerekli olan kütüphane.ApachePig ,ApacheHive ‘den HDFS veri okuyup veri yazmak istediğimizde ApacheHive ‘den HDFS geçmek için arka tarafda hadoop common kullanılıyor.
Hadoop Yarn:Genel olarak MapReduce gibi dağıtık uygulamalarımız için kaynak yönetimini sağlar.(ram,cpu) Amaç kimin ne kadar kullanacağına karar vermek,bu yüzden arka planda müdahale etmemiz gereken bir durum yok.
MapReduce:Hadoop içerisinde büyük verileri paralel olarak işleyebileceğimiz bileşen.
Kelime sayma analiz uygulamasıyla temel seviye de MapReduce işlemini incelersek;
Dosyamız json,txt den herhangi biri olabilir içeriğinde bu kelimeler geçiyor.
Splittting:Öncelikle bloklara ayırıyor(1.blok gibi)
Mapping:Key ve Value olarak ikiye ayrılıp Key:kelimeler, Value:kelime sayacı ,kelime değerleri olarak düşünebiliriz.Örneğin ilk blok için Deer 1 gibi.
Shuffling:Ayrılan veriler belirli gruplara göre toplanıyor.Beer,Car,Deer,River keyleri kendi içinde gruplara ayrılıyor.
Reducing:Aynı Key ‘e ait value (değerler) toplanır.(Bear 2) Sonuç olarak hangi makinada hangi key ne kadar geçmiş analiz sonucu oluyor.
Çok yüksek trafikte akan veriniz varsa günlük 100 milyondan fazla ,akan veriyi Hadoop HDFS ile verileri saklayıp Mapreduce analizler yapabilirsiniz ya da NoSQL veritabanlarından birini kullanıp Spark ‘ la verileri işleyebilirsiniz.Herşey yapacağınız işin senaryosunu kurmanıza bağlı.