İçeriğe geç
parazade
Yapay Zeka

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 nedir?
İçindekiler
  1. MapReduce nedir?
  2. Örnek: Kelime sayma
  3. Günümüzdeki yeri

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.

  1. Map: Girdi verisinin her parçası işlenir ve ara sonuçlar anahtar-değer çiftleri olarak üretilir.
  2. Shuffle (karıştırma ve sıralama): Aynı anahtara sahip tüm değerler bir araya toplanır.
  3. 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.

İlgili terimler

Büyük Veri(Big Data)Büyük veri (big data), geleneksel veritabanı ve analiz araçlarıyla makul sürede saklanamayacak ya da işlenemeyecek kadar büyük, hızlı üretilen ve çeşitli biçimlerdeki veri kümelerini ifade eder. Genellikle hacim, hız ve çeşitlilik özellikleriyle tanımlanır.Paralel Hesaplama(Parallel Computing)Paralel hesaplama, büyük bir hesaplama işini daha küçük parçalara bölerek bu parçaların birden fazla işlemci, çekirdek ya da makinede aynı anda yürütülmesidir; böylece işlem süresi kısalır ve tek işlemcinin çözemeyeceği büyüklükteki problemler ele alınabilir.Veri Mühendisliği(Data Engineering)Veri mühendisliği, verinin farklı kaynaklardan güvenilir biçimde toplanması, dönüştürülmesi, depolanması ve analiz ile yapay zekâ uygulamalarına hazır hâle getirilmesi için gereken sistemleri tasarlayıp işleten disiplindir.Veri Hattı(Data Pipeline)Veri hattı (data pipeline), verinin bir veya daha fazla kaynaktan alınıp belirli işlem adımlarından geçirilerek otomatik biçimde bir hedef sisteme, rapora ya da makine öğrenmesi modeline taşınmasını sağlayan süreçler zinciridir.mAP(Mean Average Precision)mAP (mean Average Precision, ortalama kesinlik ortalaması), her sınıf ya da sorgu için hesaplanan ortalama kesinlik (AP) değerlerinin ortalamasıdır. Özellikle nesne tespiti ve arama sistemlerinde modelin hem doğru bulma hem doğru sıralama başarısını tek sayıyla özetler.Makine Öğrenmesi(Machine Learning)Makine öğrenmesi, bilgisayarların açıkça programlanmadan, örnek verilerdeki kalıpları öğrenerek tahmin veya karar üretmesini sağlayan yapay zekâ dalıdır.