MapReduce

MapReduce nedir?
Büyük veri setleri ile yapılacak işlemlerin birden fazla iş birimine dağıtılmasını (Distributed computing) sağlayan bir yöntemdir. Her ne kadar Google ile bu yöntem ismi eşlense de, 1960'lı yılların tasarım kalıbıdır(design pattern).




Genel İşleyiş
1. Öncelikle input partitioning yöntemiyle alınan veriler, 16-64 mb büyüklügünde parçalara ayrılır.
2. Bu parçaların her biri master a gönderilir.
3. Master aldığı verileri mapper lara ya da reducer lara göndermekle yükümlüdür.
4. Mapperler input olarak key,value alırlar ve output larını key, intermediate value şeklinde intermediate alana gönderirler. Böylece aynı key e sahip veriler gruplanmış olur.
5. Master intermediate alandaki verileri boş olan reducer lara gönderir.
6. Reducer lar intermediate key, value şeklinde aldıkları input u, key, list(values) şeklinde output dosyalarına yazar.

Artıları
Performans - doğrusal(linear) problemlerde
Hata toleransı - hata veya arıza oluştuğunda, iş parçacığını diğer birimlere aktarabilme
Maliyet - zaman olarak fırsat maliyeti
Sahiplik - Amazon'un EC2 (dağııtmlı işlemci) ve S3 (dağıtımlı depolama) gibi kiralanabilir clould servisler

Yorum
Mapper ve reducer ların problemlerini master tolere ediyor. Fakat master de oluşabilecek fiziksel problemleri tolere edebilecek ek bir yedek master ın sistem kararlığını daha iyileyeceğini düşünüyorum. - felaket tellalı :)

Hadoop - http://hadoop.apache.org/
OctoPy - http://code.google.com/p/octopy
Disco - http://discoproject.org/

Amazon'un hadoop çiftliklerinden işlem gücü satın alarak amazon s3'te yer alan veri yığınında mapreduce algoritmaları çalıştırabilirsiniz. http://aws.amazon.com/elasticmapreduce/

Python ile de Amazon Elastic MapReduce'ın kullanımı http://aws.amazon.com/articles/2294


http://code.google.com/intl/tr-TR/edu/parallel/mapreduce-tutorial.html
http://labs.google.com/papers/mapreduce-osdi04-slides/index.html
http://www.serdarb.com/nosql/map-reduce-nedir
http://cookingthecode.com/a44_Mapreduce-nedir,-nasil-calisir_ 
http://www.eksisozluk.com/show.asp?t=mapreduce