MapReduce Nedir?
Yayın: · Son güncelleme:
MapReduce Nedir? Kısaca
MapReduce, çok büyük veri setlerini bir bilgisayar kümesine dağıtarak paralel biçimde işlemeyi sağlayan programlama modelidir. İş, veriyi anahtar-değer çiftlerine dönüştüren map ve bu çiftleri birleştiren reduce adımlarına bölünür.

MapReduce, tek bir bilgisayarın kaldıramayacağı büyüklükteki verileri çok sayıda makineye bölerek işlemeyi kolaylaştıran bir programlama modelidir. Google'da geliştirilip 2004'te bir makaleyle tanıtılmış, açık kaynaklı Apache Hadoop projesiyle yaygınlaşmıştır.
MapReduce nedir?
Model, geliştiriciden yalnızca iki fonksiyon yazmasını ister; dağıtım, paralel çalıştırma ve hata toleransı gibi zor işleri altyapı üstlenir.
- Map: Girdi verisinin her parçası işlenir ve ara sonuçlar anahtar-değer çiftleri olarak üretilir.
- Shuffle (karıştırma ve sıralama): Aynı anahtara sahip tüm değerler bir araya toplanır.
- Reduce: Her anahtar için toplanan değerler birleştirilerek nihai sonuç üretilir.
Örnek: Kelime sayma
Varsayımsal olarak milyonlarca belgede her kelimenin kaç kez geçtiğini bulmak istiyorsun.
- Map adımında her makine kendi belge parçasını okur ve her kelime için ("veri", 1) gibi çiftler üretir.
- Shuffle adımında aynı kelimeye ait tüm 1'ler aynı yere gönderilir.
- Reduce adımında bu değerler toplanır: ("veri", 5230).
Belgeler binlerce parçaya bölünebildiği için iş, makine sayısıyla orantılı olarak hızlanabilir.
Günümüzdeki yeri
MapReduce, büyük veri çağının temel fikirlerinden birini kalıcı hâle getirdi: Veriyi işleme götürmek yerine işlemi verinin bulunduğu yere götürmek. Ancak her adımın ara sonuçları diske yazması, tekrarlı hesaplamalarda yavaşlığa yol açar. Bu nedenle makine öğrenmesi gibi aynı veri üzerinde çok sayıda geçiş gerektiren işler için bellek içi çalışan daha yeni dağıtık işleme motorları yaygınlaştı. Yine de bu motorların çoğu, map ve reduce fikrini kendi yapılarında sürdürür. Konuyu paralel hesaplama ile birlikte düşünmek modeli anlamayı kolaylaştırır.
Sıkça Sorulan Sorular
MapReduce ile Hadoop aynı şey mi?
Hayır. MapReduce bir programlama modelidir; Hadoop ise bu modeli dağıtık bir dosya sistemiyle birlikte uygulayan açık kaynaklı bir yazılım çerçevesidir. Hadoop'un içinde MapReduce motoru da bulunur.
MapReduce hâlâ kullanılıyor mu?
Bazı eski sistemlerde ve toplu işlemlerde kullanılmaya devam eder. Ancak yeni projelerde çoğunlukla bellek içi çalışan daha hızlı dağıtık işleme araçları tercih edilir; bunlar da map ve reduce fikrinden yararlanır.