HADOOP Nedir?

HADOOP Nedir? Merhaba arkadaşlar, Bu yazımda sizlere Hadoop’dan bahsetmek istiyorum. Kısaca giriş yapmak gerekirse; Apache Hadoop Java ile yazılmış açık kaynak kodlu bir frameworktür. Sıradan sunuculardan (commodity hardware) oluşan Öbek (cluster) üstünde büyük verileri işlemeye yarar. Hadoop : Dağıtık (distributed ) programlama için geliştirilmiş Güvenilir (reliable) ve ölçeklenebilir (scalable) bir yazılımdır. Detaylıca değinmek gerekirse…   Hadoop, alelade sunuculardan (commodity hardware) oluşan Öbek (cluster) üstünde büyük verileri işlemek amaçlı uygulamaları çalıştıran ve Hadoop Distributed File System (HDFS) şekilde bilinen bir dağıtık dosya sistemi ile Hadoop MapReduce niteliklerini bir araya getiren, Java ile geliştirilmiş açık kaynaklı bir kütüphanedir. Daha yalın bir dille ifade etmek gerekirse, Hadoop, HDFS ve MapReduce bileşenlerinden oluşan bir yazılımdır.   HDFS yardımı ile alelade sunucuların diskleri bir araya gelerek büyük, tek bir sanal disk oluştururlar. Bu sayede aşırı büyük boyutta bir aşırı dosya bu dosya sisteminde saklanabilir. Bu dosyalar bloklar biçiminde (varsayılan 64MB) aniden fazla ve türlü sunucu üzerine (varsayılan üç kopya) dağıtılarak RAID bunun gibi bir yapıyla yedeklenir. Bu sayede veri kaybı önlenmiş olur. Ayrıca HDFS aşırı büyük boyutlu dosyalar üstünde okuma işlemi (streaming) imkanı sağlar, fakat rastlantısal erişim (random access) niteliği bulunmaz. HDFS, NameNode ve DataNode süreçlerinden (process) oluşmaktadır.   NameNode ana (master) süreç şekilde blokların sunucular üstündeki dağılımınından, yaratılmasından, silinmesinden, bir blokta sıkıntı meydana geldiğinde tekrar oluşturulmasından ve her muhtelif dosya erişiminden sorumludur. Kısacası HDFS üstündeki bütün dosyalar hakkındaki bilgiler (metadata) NameNode nedeniyle saklanır ve yönetilir. Her kümede sırf bir adet NameNode olabilir.   DataNode ise işlevi blokları gizlemek olan işçi (slave) süreçtir. Her DataNode kendi yerel diskindeki veriden sorumludur. Ayrıca öbür DataNode’lardaki verilerin yedeklerini de barındırır. DataNode’lar Öbek içerisinde aniden fazla olabilir.   Hadoop MapReduce ise HDFS üstündeki büyük dosyaları verileri işleyebilmek amacıyla uygulanan bir yöntemdir. İstediğiniz verileri filtrelemek için uygulanan Map fonksiyonu ve bu verilerden netice elde etmenizi verici Reduce fonksiyonlarından oluşan program yazıldıktan sonra Hadoop üstünde çalıştırılır. Hadoop Map ve Reduce’lerden oluşan meslek parçacıklarını Öbek üstünde dağıtarak tıpkı anda işlenmesini ve bu işler sonucunda oluşan verilerin tekrardan bir araya getirilmesinden sorumludur. Hadoop’un gücü işlenen dosyaların her süre ilgili düğümün (node) yerel diskinden okunması ile file trafiğini meşkul etmemesinden ve aniden fazla işi tıpkı anda işleyerek doğrusal şekilde ölçeklenmesinden geliyor diyebiliriz. Yani aşağıdaki grafikte bulunduğu benzeri Hadoop kümesindeki düğüm sayısı arttıkça performansı da doğrusal şekilde artmaktadır.   MapReduce, JobTracker ve TaskTracker süreçlerinden oluşur. JobTracker yazılan MapReduce programının Öbek üstünde dağıtılarak çalıştırılmasından sorumludur. Ayrıca dağıtılan meslek parçacıklarının çalışması esnasında oluşabilecek herhangi bir problemde o meslek parçacığının sonlandırılması ya da yine başlatılması da JobTracker’ın sorumluluğundadır. TaskTracker, DataNode’ların olduğu sunucularda çalışır ve JobTracker’dan tamamlanmak üzere meslek parçacığı İlgi eder. JobTracker, NameNode’un sayesinde DataNode’un lokal diskindeki veriye göre en uygun Map işini TaskTracker’a verir. Bu biçimde verilen meslek parçacıkları tamamlanır ve netice çıktısı gene HDFS üstünde bir dosya şekilde yazılarak program sonlanır.   Hadoop şu anda Yahoo, Amazon, eBay, Facebook, Linkedin benzeri çok sayıda lider firmada büyük verileri analiz etmek amacıyla kullanılıyor. Hadoop projesini geliştiren, bu konu için eğitim ve danışmanlık hizmetleri sunan Hortonworks, Cloudera, MapR benzeri şirketler mevcuttur.   Bunlar dışında Hadoop projesi büyük verileri işleme konusundaki öbür projelere bir çatı görevi görüyor. Hadoop projesinin altında Avro (veri dizileştirme (serialization) sistemi), Cassandra (yüksek erişilebilir, ölçeklenebilir NoSQL veritabanı), HBase (Hadoop üstünde çalışan, büyük veriler için ölçeklenebilir, dağıtık NoSQL veritabanı), Hive (büyük veriler üstünde meslek zekası sistemi), Mahout (ölçeklenebilir yapay öğrenme (machine learning) ve veri madenciliği kütüphanesi), Pig (paralel hesaplamalar için yüksek düzeyli bir veri akışı dil ve yürütme kütüphanesi), ZooKeeper (dağıtık uygulamalar için yüksek ölçekli koordinasyon uygulaması) projeleri geliştiriliyor.  


Yapılan Yorumlar
Erdem OFLAZ

Bir mum, diğer mumu tutuşturmakla ışığından bir şey kaybetmez.
 Kategoriler
 Popüler yazılar