Hadoop Nedir?
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.
Hadoop Nedir?
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.
Hiç yorum yok:
Yorum Gönder