ScholarGate
Asistan

MapReduce ve Veri-Paralel İşleme

MapReduce ve ardılları, çok büyük veri kümelerini ticari makinelerden oluşan kümeler arasında paralel olarak işleyen, dağıtımı, zamanlamayı ve hata toleransını otomatik olarak yöneten programlama modelleri ve çerçeveleridir.

PaperMind ile konu bulYakındaMakale ve konu bul
Tools & resources
Slaytları indir
Learn & explore
VideoYakında

Tanım

MapReduce, bir hesaplamanın anahtar-değer çiftleri yayan bir haritalama (map) fonksiyonu ve her anahtar için değerleri bir araya getiren bir indirgeme (reduce) fonksiyonu olarak ifade edildiği, çerçeve tarafından yönetilen dağıtım ve hata toleransı ile bir küme genelinde bölümlenmiş veriler üzerinde paralel olarak yürütülen bir programlama modelidir.

Kapsam

Bu konu, hesaplamayı anahtar-değer çiftleri üzerinde haritalama (map) ve indirgeme (reduce) fonksiyonları olarak ifade eden ve aralarında otomatik bir karıştırma (shuffle) işlemi bulunan MapReduce modelini ve bölümleme, zamanlama ve yeniden yürütme yoluyla hata toleransı gibi çevreleyen yürütme mekanizmalarını kapsamaktadır. Ayrıca, genel veri akışı ve bellek içi motorlara (dayanıklı dağıtılmış veri kümesi modeli gibi) evrimi ve bunları destekleyen dağıtılmış dosya sistemlerini de ele almaktadır. Komşu konular olan NoSQL depolama modelleri ve tutarlılık teorisi bu kapsamın dışındadır.

Temel sorular

  • Haritalama (map), karıştırma (shuffle) ve indirgeme (reduce) aşamaları bir hesaplamayı nasıl paralelleştirir?
  • Çerçeve, veri bölümlemeyi, zamanlamayı ve geciken görevleri (stragglers) nasıl yönetir?
  • Hata toleransı, başarısız görevlerin yeniden yürütülmesi yoluyla nasıl sağlanır?
  • Genel veri akışı ve bellek içi motorlar, birçok iş yükü için MapReduce'un yerini neden almıştır?
  • Dağıtılmış dosya sistemleri, veri-paralel işlemede hangi rolü oynamaktadır?

Anahtar kavramlar

  • haritalama (map) ve indirgeme (reduce) fonksiyonları
  • karıştırma (shuffle) ve sıralama aşaması
  • veri bölümleme
  • görev zamanlama ve geciken görevler (stragglers)
  • yeniden yürütme ile hata toleransı
  • dağıtılmış dosya sistemi
  • veri akışı grafikleri
  • dayanıklı dağıtılmış veri kümeleri

Temel kuramlar

MapReduce modeli
Programcılar, girdi kayıtlarını ara anahtar-değer çiftlerine dönüştüren bir haritalama (map) fonksiyonu ve bir anahtar için tüm değerleri birleştiren bir indirgeme (reduce) fonksiyonu yazarlar; çerçeve, paralel yürütmeyi, değerleri anahtara göre gruplayan karıştırma (shuffle) işlemini ve hatalardan kurtarmayı yönetmektedir.
Yeniden yürütme ile hata toleransı
Görevler, bölümlenmiş girdi üzerinde deterministik fonksiyonlar olduğundan, çerçeve makine arızalarını başarısız haritalama (map) veya indirgeme (reduce) görevlerini yeniden çalıştırarak tolere eder ve geciken görevlerin yedek (spekülatif) kopyalarını başlatarak yavaş düğümlerin etkisini azaltır.
Bellek içi veri akışı motorları
Daha sonraki sistemler, MapReduce'u keyfi veri akışı grafiklerine genelleştirmiş ve ara verileri bellekte tutmuştur; dayanıklı dağıtılmış veri kümesi (resilient distributed dataset) soyutlaması, kayıp bölümleri soy ağacından (lineage) yeniden hesaplayarak kurtarır, bu da yinelemeli ve etkileşimli iş yüklerini büyük ölçüde hızlandırmaktadır.

Klinik önem

Veri-paralel işleme, küme ölçekli hesaplamayı sıradan programcılar için erişilebilir hale getirmiştir: MapReduce ve ardılları, petabaytlarca veri üzerinde günlükleri işler, arama indeksleri oluşturur, modelleri eğitir ve analizler yürütür; bunlar veri mühendisliğinin ve büyük ölçekli veri biliminin temel araçlarıdır.

Tarihçe

Google, ticari kümeler üzerinde web'i indekslemek amacıyla MapReduce'u (2004) Google Dosya Sistemi (2003) üzerine inşa ederek tanıtmıştır ve açık kaynaklı Hadoop her ikisini de yeniden uygulayarak modeli popülerleştirmiştir. 2010'ların başlarına gelindiğinde, dayanıklı dağıtılmış veri kümesi (resilient distributed dataset) soyutlaması (2012) üzerine inşa edilen bellek içi veri akışı motorları, yinelemeli ve etkileşimli analizler için MapReduce'un yerini almış, ancak onun hata toleransı fikirlerini korumuştur.

Öne çıkan isimler

  • Jeffrey Dean
  • Sanjay Ghemawat
  • Matei Zaharia

İlgili konular

Temel eserler

  • dean2008
  • ghemawat2003
  • zaharia2012

Sıkça sorulan sorular

MapReduce, basitliğine rağmen neden bu kadar etkili olmuştur?
Gücü, gizlediği şeylerde yatıyordu. Hesaplamayı haritalama (map) ve indirgeme (reduce) fonksiyonlarıyla sınırlayarak, çerçeve verileri otomatik olarak bölümleyebilir, binlerce makineye iş dağıtabilir, görevleri yeniden çalıştırarak hatalardan kurtulabilir ve yükü dengeleyebilirdi — bu da programcıların dağıtılmış sistem kodu yazmadan devasa veri kümelerini işlemesine olanak tanımıştır.
Yeni nesil motorlar, birçok görev için MapReduce'un yerini neden almıştır?
Klasik MapReduce, her aşama arasında ara sonuçları diske yazar, bu da makine öğrenimi gibi çok adımlı ve yinelemeli işler için yavaştır. Bellek içi veri akışı motorları, verileri aşamalar arasında bellekte tutar ve daha zengin hesaplama grafikleri ifade eder, soy ağacı tabanlı hata toleransını korurken büyük hız artışları sunar, bu nedenle birçok analitik iş yükü için tercih edilir hale gelmişlerdir.

Bu kavram için yöntemler

İlgili kavramlar