CodeBlanks Logo Icon CodeBlanks

MapReduce

MapReduce ile dağıtık hesaplama öğrenirsin.

MapReduce

MapReduce, büyük veriyi dağıtık kümelerde işlemek için kullanılan bir programlama modelidir. Üç aşamadan oluşur: map, shuffle ve reduce.

Map aşaması her girdi parçasını (anahtar, değer) çiftlerine dönüştürür. Shuffle aşaması aynı anahtara sahip çiftleri aynı işçiye gruplar. Reduce aşaması her grup için birleştirme yapar.

Bu model, kelime sayma, ters indeks ve log analizi gibi görevlerde yaygın olarak kullanılır.

Shuffle ve reduce

Shuffle aşaması, map çıktısındaki tüm (anahtar, değer) çiftlerini anahtara göre gruplar. Aynı anahtara sahip tüm değerler aynı reduce işçisine gönderilir.

Reduce aşaması her grup için birleştirme yapar; örneğin kelime saymada değerleri toplar. Bu ayrım, dağıtık ortamda paralel çalışmayı sağlar.

Sayfa sıralama, ters indeks ve istatistik hesaplama bu yapıyla kolayca ifade edilir.

Uygulama mapreduce_count fonksiyonu

mapreduce_count(documents) yaz. Her dokümandaki kelimeleri (kelime, 1) çiftleri olarak üretip say. Sonucu sıralanmış (kelime, sayı) çiftleri listesi döndür. print(mapreduce_count(['elma elma armut', 'elma muz'])) ile [('armut', 1), ('elma', 3), ('muz', 1)] yazdır.

Başlangıç kodu

solution.py
def mapreduce_count(documents):
    # MapReduce ile kelime sayısı

Örnek çözüm

solution.py
def mapreduce_count(documents):
    # MapReduce ile kelime sayısı
    mapped = []
    for doc in documents:
        for word in doc.split():
            mapped.append((word, 1))
    counts = {}
    for word, one in mapped:
        counts[word] = counts.get(word, 0) + one
    return sorted(counts.items())
print(mapreduce_count(['elma elma armut', 'elma muz']))

Beklenen çıktı

[('armut', 1), ('elma', 3), ('muz', 1)]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 map çıktısı

Soru
for word in doc.____():
    mapped.append((word, 1))
Cevap
for word in doc.split():
    mapped.append((word, 1))

Açıklama: split() ile kelimelere ayrılır.

2 MapReduce kavramları

Kavram Anlamı
map (anahtar, değer) üretir
shuffle Aynı anahtarı gruplar
reduce Birleştirir
büyük veri Dağıtık küme

3 Reduce aşaması ne yapar?

solution.py
for word, one in mapped:
    counts[word] = counts.get(word, 0) + one
  • Veriyi sıralar
  • Veriyi böler
  • Aynı anahtarları birleştirir Doğru cevap
  • Veriyi filtreler

Açıklama: Reduce, aynı anahtara sahip değerleri birleştirir.

Uzman seviye bölümündeki tüm dersler