Apache Hadoop Nedir?

Apache Hadoop Nedir? Nerelerde kullanılır? Neden Önemlidir?

Merhaba, bu yazımda kısaca Hadoop’un ne olduğununda ve nerelerde kullanıldığınından bahsedeceğim.

Kelime Anlamıyla Hadoop

Projenin başındaki kişi Doug Cutting’e göre Hadoop kelimesi tamamen anlamsız,çocuğunun uydurduğu bir kelimeymiş. Oyuncak sarıfiline bu ismi vermiş. Doug beyde projeyi oluştururken ismini düşünmeye başlamış. Sonra çocuğunun sarıfili aklına gelmiş. İsim kriterlerine bakmış hiçbir anlam ifade etmemesi, kolay söylenmesi ve akılda kalıcı olması. Hepsi tutunca demişki bu projenin adı Hadoop olsun. Böylece bizim bildiğimiz Hadoop ortaya çıkmış.

İşlevsel Anlamda Hadoop

Hadoop, bir küme(cluster) mimarisidir. Yani sizin bir “A” işiniz var. “A” işini eski mimari ile tek makinede çalıştırısınız ve “X” sürede sonuç alırsınız. Oysa “A” işini küme mimarisi ile “N” kadar makinede aynı anda çalıştırabilirsiniz. Böylece “X/10″,”X/20” gibi sürelerde işi tamamlayabilirsiniz.
Hadoop’un tam tanımı aynı işi değişik makinelere dağıtarak işi en kısa sürede tamamlayabilmektir. Hadoop’un en önemli özelliklerinden biri ortak ve güvenilir olmayan makineler üzerinde çalışabilir. Eğer makinelerden biri çalışmazsa veya bir problem olursa işi bir sonraki makineye yönlendirir.
Hadoop’un iki ana bileşeni mevcuttur. MapReduce ve HDFS.

HDFS

HDFS kelime açılımı itibari ile Hadoop Distributed Filesystem’dir. Daha önce Google’ın geliştirdiği bir dosya yapısından kalıtım almıştır. HDFS, büyük boyutlu dosyaları oluşturmak için idealdir. Çünkü bir veri bloğu varsayılan olarak 64 MB’den oluşur. Oysa bizim kullandığımız NTFS sistemlerde bu 512 KB’dir. HDFS, küçük boyutlu dosyaları saklamak ve erişmek için çok kötü bir tercihtir.

MapReduce

MapReduce, Hadoop’un işi yapan kısmıdır. İki fonksiyonun birleşmesinden oluşur: Map ve Reduce. Map yani haritalandırma kısmı veriyi, anahtar-değer ilişikisine getirir. Reduce yani küçültme kısmı ise anahtar-değer haline gelmiş veri içerisinde verdiğiniz ilişkiye göre azaltarak istenilen sonucu üretir.

Hadoop’un Diğer Sistemler İle Karşılaştırılması

 

Geleneksel Veritabanı MapReduce
Veri Boyutu Gigabyte Seviyesinde Petabyte Seyivesinde
Erişim Interaktif ve batch Batch
Güncellemeler Çoklu Okuma Yazma Bir Kere Yaz, Çok Oku
Yapı Statik Şema Dinamik Şema
Bütünlük Yüksek Düşük
Ölçeklendirme Doğrusal Değil Doğrusal

Yahoo’da Kullanım

2004: Hadoop’un ilk versiyonu Doug Cutting ve Mike Cafarella tarafından implemente edildi.
Aralık 2005: Hadoop aynı anda 20 makinede başarıyla çalıştı.
Ocak 2006: Doug Cutting Yahoo! katıldı.
Şubat 2006:  Apache Hadoop projesi resmen başladı. 
Şubat 2006: Yahoo! tarafından adapte edildi.
Nisan 2006: 188 makine üzerinde 47,9 saatte sıralamayı tamamladı(Makine başına 10GB).
Mayıs 2006: Yahoo! 300 makine ile Hadoop araştıma kümesini kurdu.
Kasım 2006: Araştırma kümesi 600 makineye ulaştı.
Ocak 2007: Araştırma kümesi 900 makineye ulaştı.
Nisan 2007: Araştırma kümesi ikiye bölünerek 1000 makineye ulaştı.
Nisan 2008: 900 makine ile sıralama ödülü kazanıldı. 1 terabyte veriyi 209 saniyede sıralaması tamamlandı.
Kasım 2008: Günlük 10 TB veri araştırma kümelerine yüklendi.
Mart 2009: Toplam 24.000 makine ile 17 kümeye ulaştı.
Nisan 2009: 500 GB veri 59 saniyede sıralandı. Toplam 1.400 makine ile test tamamlandı. 100 TB veri ise 173 dakikada tamamlandı(3.400 makine).

Hadoop Ekosistemi

Avro

RPC çağrıları için dataların kolay taşınmasını sağlayan bir serileştirme sistemidir.

MapReduce

Ortak makinelerde, dağıtık bir mimari ile modelleme ve çalıştırma mimarisidir.

HDFS

Ortak makinelerde, dağıtık bir mimariye sahip dosya sistemidir.

Pig

Veri akışını kontrol eden ve büyük boyutlu verilerde işlem yapmayı kolaylaştıran bir araçtır. HDFS ve MapReduce kümelerinde çalışır.

Hive

Dağıtık yapılı bir veri ambarıdır. SQL benzeri bir dil sağlar.

HBase

Dağıtık temelli, kolon bazlı bir veritabanıdır.

ZooKeeper

İşlerin sürekli çalışır halde kalmasını sağlayan bir takip sistemidir.

Sqoop

Klasik veritabanı ile HDFS arasında toplu olarak veri transferi yapılmasını sağlayan bir araçtır.

Oozie

Bütün işleri zamanlamak için kullanılan bir araçtır.

Leave a Reply

Your email address will not be published. Required fields are marked *