Hadoop sistemi denildiğinde en sık görülen
terimlerin başında big data geliyor. Big data temel olarak büyük veri
olarak çeviri yapılmış olsa da aslında boyutsal bir büyüklük kast
edilmemektedir. Burada ki büyük ve dev tabirleri klasik yöntemler kullanılarak
işlenemeyen verileri tanımlıyor.
Büyük veri somut olarak bakıldığı zaman hayatımızın
her alanını kapsayabiliyor. Örnek olarak her motor 10TB/30 dk veri üretiyor. Bunun gibi medikal veriler,
üretim verileri, teknolojik gelişmeler toplandığında big data oluşuyor.
Uçak Motorlarının Yılda Ürettiği Veri Boyutu |
Hadoop Nedir?
Hadoop,
sıradan sunuculardan (commodity hardware) oluşan küme (cluster) üzerinde
büyük verileri işlemek amaçlı uygulamaları çalıştıran ve Hadoop Distributed File System (HDFS)
olarak adlandırılan bir dağıtık dosya sistemi ile Hadoop MapReduce özelliklerini bir araya getiren, Java ile geliştirilmiş açık
kaynaklı bir kütüphanedir. Daha yalın bir dille anlatmak gerekirse,
Hadoop, HDFS ve MapReduce bileşenlerinden oluşan bir yazılımdır.
Sosyal Medyada Üretilen Dev Veriler |
Hadoop, bir küme(cluster) mimarisidir. Yani sizin
bir ‘A’ işiniz var. ‘A’ işini eski mimari ile tek bir makinede çalıştırabiliriz
ve ‘T’ sürede sonuç alırsınız. ‘A’ işini küme mimarisi ile ‘N’ kadar makinede
aynı anda çalıştırabiliriz. Böylece ‘T/10’, ‘T/20’ gibi sürelerde işi
tamamlayabiliriz.
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 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şkisine 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ı
Normal Veritabanı
|
MapReduce
|
||||
Veri Boyutu
|
Gigabyte
Boyutunda
|
Petabyte
Boyutunda
|
|||
Erişim
|
İnteraktif
ve Batch
|
Batch
|
|||
Güncellemeler
|
Çoklu
Okuma ve Yazma
|
Bir
Yaz, Çoklu Oku
|
|||
Yapı
|
Statik
Şema
|
Dinamik
Şema
|
|||
Bütünlük
|
Yüksek
|
Düşük
|
|||
Ölçeklendirme
|
Doğrusal
Değil
|
Doğrusal
|
Yahoo'da Hadoop Geçmişi
Aralık 2005: Hadoop aynı anda 20 makinede başarıyla çalıştı.
Ocak 2006: Doug Cutting Yahoo bünyesine 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ı(Her makine 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 çıkarıldı.
Ocak 2007: Araştırma kümesi 900 makineye çıkarıldı.
Nisan 2007: Araştırma kümesi ikiye bölünerek 1000 makineye çıkarıldı.
Nisan 2008: 900 makine ile sıralama ödülü kazanıldı. 1 TB veriyi 209 saniyede sıralandı.
Kasım 2008: Günlük 10 TB veri araştırma kümelerine yüklendi.
Mart 2009: Toplam 24000 makine ile 17 kümeye ulaştı.
Nisan 2009: 500 GB veri 59 saniyede sıralandı(1400 Makine). 100 TB veri ise 173 dakikada tamamlandı(3400 Makine).
Hadoop
Ekosistemi
Avro: RPC çağrıları için verilerin kolay taşınmasını sağlayan bir serileştirme 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.
Zookeeeper: İş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.
Bir sonraki yazımda görüşmek üzere…