Hadoop Nedir?
Hadoop big data kelimesi kullanıldığında ilk akla gelen şeydir. Hadoopun ne demek olduğunu ve bileşenlerini kısaca anlatacağım.
Hadoop Distributed File System (HDFS) Nedir?
Big data olması halinde kullanılan, çok sayıda sıradan sunucu ve RAMa sahip olan cihazların disklerinde verinin bölüştürülmesi ve bu sayede tek bir büyük sanal sunucu varmış gibi verilerin saklanabilmesi ve işlenebilmesi işlemidir.
Normalde ilişkisel veri tabanı yönetim sistemlerinde (Relational Database Management System) tek bir bilgisayarda tüm veriler bulunur ve veriye ihtiyaç halinde o bilgisayara bağlanarak veri çekilme ya işlenme durumu gerçekleşir. Ancak Hadoop da her bir cihazın kendi işlemcisi ve RAMi bulunur. Bu küçük çaplı cihazlar kümeleme sistemiyle (Nodelerle) dosya sistemine bağlıdır. Big datayı bu şekilde saklayabilmeyi ve işlemeyi sağlayan Java ile birlikte geliştirilmiş olan açık kaynak kodlu bir kütüphanedir.
Hadoop ile Veri İşleme Nasıl Gerçekleşir?
İşlemler Nodeler üzerinde gerçekleşir. Her Nodenin kendine ait işlemcisi ve RAMi olduğu için, veri işleme noktasında da yine bu cihazlar kullanılır. Bunu yapmanın çok önemli bir avantajı vardır. O da tek bilgisayar üzerinden yapıldığında çok yüksek bir trafik oluşmasına neden olan bu durum, Nodeler sayesinde bölüştürüldüğünden, düşük bir trafikle hızlı veri işleme ve saklama mümkün olabilmektedir.
Hadoop Veri Saklama İşlemi Nasıl Yapılıyor?
Big data sisteme yüklendiği anda HDFS bunu belirli parçalara bölerek NODEler üzerinde saklamaya başlar. Her biri ayrı bir cihaz gibi düşünebileceğiniz bu Nodeler veriyi işlemek ve saklamak için hazır durumda bulunur.
Burada en çok dikkat edilmesi gereken nokta şudur ki, HDFS bu parçalara ayırma işlemini yaparken, verileri artırarak Nodelere dağıtır. Yani tabiri caizse aynı veriyi 1den fazla Nodelere göndererek saklama işlemi gerçekleşir. Bunun nedeni herhangi bir Node üzerinde bir sorun oluştuğunda ya da Node bünyesinde bulunan veri herhangi bir sebeple hasar gördüğünde, bunun başka bir Nodede kayıtlı bulunması sayesinde eksiğin kolayca giderilmesini sağlamaktır. Bu sayede veri kaybı gibi bir şey de gerçekleşmemiş olur.
Dezavantajları Nelerdir?
Hadoopun hep avantajlarını konuştuk, şimdi de biraz dezavantajlarına değinelim:
- Sistemin SQL yöntemlerine sahip olmaması en büyük handikap olarak görülür. Bunun büyük bir noksanlık olduğu düşüncesi hakimdir.
- Ağ üzerinde hızlı bir veri geçişi sağlanmak istendiği için herhangi bir uçtan uca şifrelenme durumu söz konusu değildir. Bu da veri güvenliği açısından önemli bir eksiklik olarak görülür.
- Hadoop Nodeler üzerinde kaydettiği verileri daha iyi koruyabilmek adına, Nodelerden herhangi birinin sistemden çıkması ya da Nodenin sakladığı veride herhangi bir hasar bulunması nedeniyle aynı veriyi başka Nodeler üzerinde de saklar. Başka bir tabirle aynı verinin bir kopyasını da bulundurur. Bu durum normal veriden çok daha yüksek bir boyutta verinin oluşmasına neden olur. Dolayısıyla disk alanı noktasında önemli bir dezavantaj olduğu söylenebilir.
- Hadoopun sahip olduğu temel bileşenleri yeterlilik noktasında zafiyet göstermektedir.
Hadoop Bileşenleri Nelerdir?
Bu bileşenleri kullanım alanlarına göre sıralarsak şu şekilde anlatılabilir:
- Data Access için; pig, hive, data storage için HBase, cassandra, interecation, visualization, execution
- Development için; HCatalog, lucene, hama, crunch
- Data serialization için; avro, thrift
- Data intelligence için; drill ve mohout
- Data integration için; sqoop, flume ve chuwka
- Management için; ambari (Portal)
- Monitoring için; zookeeper
- Orchestration için; oozie.
Bu bileşenlerin doğru şekilde kullanılabilmesi için üstte saymış olduğumuz eşleştirmelerin yapılması son derece önemlidir. Bu eşleştirmeler eğer düzgün yapılmazsa, sistem aksaklıkların olması kaçınılmaz oluyor ve işleyişte ciddi bozukluklar meydana gelebiliyor.