MAPREDUCE

MAPREDUCE NEDİR?

MapReduce dağıtık mimari üzerinde çok büyük verilerin kolay bir şekilde analiz edilebilmesini sağlayan bir sistemdir. 2004 yılında Google tarafından duyurulan bu sistem aslen 1960’lı yıllarda geliştirilen fonksiyonel programlamadaki map ve reduce fonksiyonlarından esinlenmiştir. Veriler işlenirken bu iki fonksiyon kullanılır.
Map aşamasında ana (master) düğüm (node) verileri alıp daha ufak parçalara ayırarak işçi (worker) düğümlere dağıtır. İşçi düğümler bu işleri tamamladıkça sonucunu ana düğüme geri gönderir. Reduce aşamasında ise tamamlanan işler işin mantığına göre birleştirilerek sonuç elde edilir. Daha basite indirgersek, Map aşamasında analiz edilen veri içerisinden almak istediğimiz veriler çekilir, Reduce aşamasında ise bu çektiğimiz veri üzerinde istediğimiz analiz gerçekleşir.
Daha iyi anlatabilmek için herkesin aşina olduğu ilişkisel veritabanı sistemleri ile (RDBMS) karşılaştırmamız gerekirse, Map aşaması select cümlesi ile ilgili alanları seçmemize ve where ile ilgili sınırlamaları yapmaya, Reduce aşaması ise count, sum, having gibi ilgili veri üzerinde hesaplama yapmamıza benzetilebilir.
Map aşamasındaki işlemler birbirinden bağımsız olarak gerçekleşebildiği için paralel olarak çalışabilir. Bu sayede büyük miktardaki veri küme (cluster) içerisindeki düğümler tarafından hızlı bir şekilde okunabilir. Yani küme içerisinde ne kadar çok düğüm var ise işlem hızlanır. Reduce aşamasında ise aynı anahtara (key) sahip veriler paralel olarak işlenebilir.
Özetle, çok büyük bir veriyi işleyebilmek için çok yüksek donanıma sahip sunucular kullanmak yerine sıradan sunuculardan (commodity hardware) oluşan bir küme üzerinde MapReduce yardımıyla aynı işlem çok daha etkin bir şekilde gerçekleştirilir. Google’ın diğer arama motorları arasında fark yaratmasını sağlayan temel teknolojilerden birisi işte bu MapReduce teknolojisidir.
Sadece Google değil, sosyal medyanın vazgeçilmez olduğu bu günlerde Facebook, Linkedin, Twitter gibi çok fazla veri toplayan şirketler de bu sistemi kullanmaktadır. Son 2 yılda web üzerinde üretilen verilerin geçen 10 seneden daha fazla olduğu gerçeğini düşünecek olursak ilerleyen zamanlarda bu sistemin çok daha fazla öne çıkacağını şimdiden kestirebiliriz.
Klasik veritabanı sistemleri ile Petabyte mertebesindeki verilerin işlenebilmesi ancak milyon dolar seviyesindeki donanım ve yazılım ile mümkün iken, MapReduce bu soruna çok ciddi bir alternatif durumundadır.
MapReduce sisteminin C, C++, Java, Erlang vs gibi bir çok dilde açık kaynaklı ve ücretli uygulaması bulunmaktadır. Adını en çok duyuran ve özellikle son bir yılda öne çıkan proje ise Apache Hadoop projesidir.

Yorumlar