Tüm yazılar
Matematik26 Aralık 2024

MapReduce: Büyük Verinin 1000 Makineye "Dağıtıldığı" Paradigma

Google 2004'te modern bulutu doğuran fikri yayınladı. Her büyük veri sisteminin altyapısında bu basit ama güçlü idea var.

Matematik Karavanı 6 dk okuma 5 soru
Yapboz parçaları — paralel hesap metaforu

"Bir makine yetmez"

2003: Google milyarlarca web sayfasını indekslemek zorunda. Tek makine yapamaz. Binlerce ucuz makineyi koordine etmek lazım.

Sorun: paralel programlama zor:

  • Hata kontrolü.
  • Senkronizasyon.
  • Veri yönetimi.

Çözüm: Jeff Dean ve Sanjay Ghemawat 2004 makalesi — MapReduce.

Tek cümle: basit iki adım, binlerce makineye dağılır.

Mantık

Her hesaplamayı iki aşamaya indirgemek mümkün:

Map adımı

Her veri parçası için (anahtar, değer) üret.

input: "merhaba dünya merhaba"
map_output: [
  ("merhaba", 1),
  ("dünya", 1),
  ("merhaba", 1)
]

Reduce adımı

Aynı anahtarlı değerleri birleştir.

reduce_input: ("merhaba", [1, 1]), ("dünya", [1])
reduce_output: ("merhaba", 2), ("dünya", 1)

Bu kelime sayım klasik örneği.

Neden bu kadar güçlü?

Map ve Reduce paralelleştirilebilir:

  • Her map veri parçası bağımsız → her makinede.
  • Her reduce anahtar bağımsız → ayrı makinede.

Sistem otomatik dağıtır:

  • Veri lokal makinede ise oraya hesaplama gönder ("data locality").
  • Bir makine arıza yaparsa başka makine aynı işi yapar.
  • Programcı bunu hiç düşünmez.

Örnekler

Web indeksleme

  • Map: her sayfa için (kelime, URL).
  • Reduce: kelime → URL listesi.

Log analizi

  • Map: log satırı → (kullanıcı_id, 1).
  • Reduce: kullanıcı_id → toplam istek.

Grafik (PageRank)

  • Map: link → (hedef, kaynak skor).
  • Reduce: hedef → toplam skor.

Ölü sayım örneği

  • Map: tweet → (kelime, 1).
  • Reduce: kelime → toplam frekans.

Hadoop

Apache Hadoop (2006): Google'ın MapReduce makalesinin açık kaynak versiyonu.

  • HDFS: dağıtık dosya sistemi.
  • MapReduce engine: hesaplama.
  • YARN: kaynak yöneticisi.

2010'lar boyunca big data'nın standart altyapısı oldu.

Sınırlamalar

  • Iteratif algoritmalar çok yavaş: her iterasyon disk yazma.
  • Genel API: sadece Map + Reduce.
  • Programlama zor: Java boilerplate.

Bu yüzden Spark (Matei Zaharia) MapReduce'u bellekte tutarak 10-100x hızlandırdı.

Hala kullanılıyor mu?

Doğrudan MapReduce kodu azaldı. Ama fikir her yerde:

  • Spark: bellekte MapReduce.
  • Flink: streaming MapReduce.
  • Dask: Python paralel.
  • Apache Beam: çoklu yürütme motoru.
  • Modern SQL warehouses (Snowflake, BigQuery): arka planda MapReduce benzeri.

Modern AI bağlantısı

LLM eğitimi paralel batch processing:

  • Her veri parçası → gradient (map).
  • Tüm gradient'leri toplama (all-reduce).

Bu MapReduce'un derin öğrenme versiyonu.

NVIDIA NCCL, Horovod, FSDP — hepsi modern parallel training.

Google sonrası

Google kendi içinde MapReduce'tan Cloud Dataflow + Beam'e geçti. Daha esnek, daha hızlı.

Ama temel fikir aynı: böl + işle + birleştir.

Felsefe

MapReduce iki temel ilke:

  1. Functional programming: yan etki yok, deterministik.
  2. Divide and conquer: büyük problemi küçüklere böl.

İkisi de klasik bilgisayar biliminin mirası — sadece paralelleştirildi.

Türkiye uygulamaları

  • TÜBİTAK BİLGEM: Hadoop kümeleri 2010'larda.
  • Garanti BBVA: log analizi MapReduce.
  • Turkcell: müşteri davranışı.
  • TCMB: ekonomik veri.

Çoğu Türk veri merkezi Spark + Delta'ya geçti, ama MapReduce mirası kaldı.

Türk programcı için ders

MapReduce basit bir fikrin dünyayı değiştirebileceğini gösterir:

  • 2004: Google makalesi.
  • 2006: Apache Hadoop.
  • 2010'lar: tüm büyük şirketler kullanıyor.
  • 2014'te 50 milyar dolarlık veri pazarı doğdu.

Basit + paralel = ölçeklenir.

Kapanış

MapReduce, modern bulut çağının başlangıç noktası. Doğrudan kullanım azaldı ama fikir her yerde. Spark, Dataflow, modern ML eğitim — hepsi MapReduce'un torunu.

Jeff Dean ve Sanjay Ghemawat'ın 6 sayfalık makalesi, trilyon dolarlık endüstrinin ilk taşı oldu.

Etiketler

MapReducebig dataHadoopdağıtık hesaplamaGoogle

Kendinizi Test Edin

Cevaplarınız profilinizde istatistik olarak saklanır.

1. MapReduce kim icat etti?

2. İki temel adım?

3. Apache Hadoop ne sağladı?

4. Modern MapReduce ne?

5. AI bağlantısı?