DevVeri.com

Boğulacaksan büyük veride boğul!

MapReduce nedir?

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.

 

Kaynak: Wikipedia

,

13 thoughts on “MapReduce nedir?

  • ibrahim dedi ki:

    Merhaba, Yazınız için çok teşekkür ederim.Çok faydalı olmuş ama sormak istediğim birşey var. “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.” bu cümleyi biraz açabilir misiniz ? Teşekkürler

    • Hakan İlter dedi ki:

      Merhaba,

      Örnekle anlatmaya çalışayım; Map ve Reduce işlemleri paralel olarak çalışabilir. Yani aynı anda birden çok map ya da reduce işlemi yapan process çalışabilir. Örneğin Hadoop’da map ve reduce processlerinin sayısını ayarlayabilirsiniz, varsayılan olarak 2 map 2 reduce yapabilecek şekilde ayarlıdır. Bu ayara sahip 4 TaskTracker sunucunuz varsa bu kümenin map kapasitesi 8 dir. Yani aynı anda 8 map işlemi çalışabilir demektir.

  • […] biri de çevik olması gerçekten çok çevik! Öyle ki kullandığı teknoloji olan MapReduce Google tarafından geliştirilmiş ve Google’ın arama altyapısını bu yapı üzerine […]

  • Video Ders dedi ki:

    Gerçekten faydalı bir yazı olmuş hakan bey teşekkür ederim. Seminer slaytlarınız varsa alabilirmiyim veya daha detaylı dökümanlarınız

  • Teşekkürler güzel bir yazı olmuş. MapReduce konusunda başka Türkçe kaynak bulamamıştım.

  • Serap dedi ki:

    Meraba hakan bey bu konu benim tez ödevim fakat hoca uygulamalı gerçekleştirim istiyor bu konuda nasıl olabilir hangi programla

  • […] tutuyor, veritabanı olarak Big Table kullanıyor, dev veriyi işlemek için MapReduce kullanıyor. Bu teknolojilerin hepsi düşük maliyetli binlerce bilgisayarın bir araya […]

  • Merhaba ,
    Map Reduce ,
    Hadoop incelemekteyim.

    Elimde 900 + kullanıcı girişli olan bir sistem var fakat sistemde her kullanıcının 100.000 db ye işlenen dataları var bu yuzden her birinin db sini ayrı ayrı tuttum guncelleme yaptığımda tüm dbler güncelleme ihtiyacı duyuyuorum nasıl bir çözüm üretmeliyim db yi birleştirmeliyim hadoop map reduce işimi gorurmu db boyutu yükseldikte bana bir problem yaratırmı diye düşünüyorum o yüzden terrettütlerim var. Fakat aynı zamanda bunu google ve bir çok site kullanıyor.

    • Hakan İlter dedi ki:

      Süleyman Bey, sizin probleminizi Hadoop MapReduce’den ziyade bir NoSQL veritabanı çözer gibi geliyor. Bunları incelerseniz daha iyi olabilir.

  • […] Map Reduce Nedir : http://devveri.com/hadoop/mapreduce-nedir […]

  • Can dedi ki:

    Merhaba,

    pig’le analiz edilmiş bir veriyi görsele nasıl dönüştürürüm

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.