Hadoop'ta MapReduce nedir?
MapReduce , büyük miktarda veriyi işlemek için kullanılan bir yazılım çerçevesi ve programlama modelidir. MapReduce programı Map ve Reduce olmak üzere iki aşamada çalışır. Harita görevleri, verileri bölme ve haritalama ile uğraşırken, görevleri azaltın ve verileri azaltın.
Hadoop, çeşitli dillerde yazılmış MapReduce programlarını çalıştırabilir: Java, Ruby, Python ve C ++. Bulut bilişimdeki Map Reduce programları doğaları gereği paraleldir, bu nedenle kümedeki birden çok makineyi kullanarak büyük ölçekli veri analizi gerçekleştirmek için çok kullanışlıdır.
Her aşamanın girdisi anahtar-değer çiftleridir. Ek olarak, her programcının iki işlev belirtmesi gerekir: eşleme işlevi ve azaltma işlevi .
Bu yeni başlayan Hadoop MapReduce eğitiminde öğreneceksiniz-
- Hadoop'ta MapReduce nedir?
- Büyük Veride MapReduce Mimarisi ayrıntılı olarak açıklandı
- MapReduce Mimarisi ayrıntılı olarak açıklandı
- MapReduce Nasıl Çalışır?
Büyük Veride MapReduce Mimarisi ayrıntılı olarak açıklandı
Tüm süreç, bölme, haritalama, karıştırma ve azaltma olmak üzere dört aşamadan geçer.
Şimdi bu MapReduce eğitiminde, bir MapReduce örneği ile anlayalım-
Büyük Veri Programında MapReduce'unuz için aşağıdaki giriş verilerine sahip olduğunuzu düşünün
Welcome to Hadoop ClassHadoop is goodHadoop is bad
MapReduce görevinin son çıktısı
kötü | 1 |
Sınıf | 1 |
iyi | 1 |
Hadoop | 3 |
dır-dir | 2 |
-e | 1 |
Hoşgeldiniz | 1 |
Veriler, Büyük Veride MapReduce'un aşağıdaki aşamalarından geçer
Giriş Bölmeleri:
Büyük Veri işinde bir MapReduce girdisi, girdi bölmeleri adı verilen sabit boyutlu parçalara bölünmüştür. Girdi bölmesi, tek bir harita tarafından tüketilen girdinin bir parçasıdır
Haritalama
Bu, harita azaltma programının yürütülmesinin ilk aşamasıdır. Bu aşamada, her bölünmedeki veriler, çıktı değerlerini üretmek için bir eşleme işlevine aktarılır. Örneğimizde, haritalama aşamasının bir işi, giriş bölmelerinden her bir kelimenin bir dizi oluşumunu saymak (giriş-bölme hakkında daha fazla ayrıntı aşağıda verilmiştir) ve
Karıştırma
Bu aşama, Haritalama aşamasının çıktısını tüketir. Görevi, Haritalama aşaması çıktısından ilgili kayıtları birleştirmektir. Örneğimizde, aynı sözcükler, ilgili sıklıkları ile birlikte bir araya getirilmiştir.
İndirgeme
Bu aşamada, Shuffling aşamasından gelen çıktı değerleri toplanır. Bu aşama, Karıştırma aşamasından gelen değerleri birleştirir ve tek bir çıkış değeri döndürür. Kısacası, bu aşama tüm veri setini özetler.
Örneğimizde, bu aşama Karıştırma aşamasından değerleri toplar, yani her bir kelimenin toplam geçtiğini hesaplar.
MapReduce Mimarisi ayrıntılı olarak açıklandı
- Her bölüm için bir harita görevi oluşturulur ve bu görev, bölümdeki her kayıt için harita işlevini yürütür.
- Birden fazla bölünmeye sahip olmak her zaman faydalıdır çünkü bir bölünmeyi işlemek için geçen süre, tüm girdinin işlenmesi için geçen süreye kıyasla küçüktür. Bölmeler daha küçük olduğunda, bölmeleri paralel olarak işlediğimiz için işlemin dengeli yüklenmesi daha iyidir.
- Bununla birlikte, boyut olarak çok küçük yarıkların olması da arzu edilmez. Bölmeler çok küçük olduğunda, bölmeleri yönetme ve harita görevi oluşturma aşırı yükü, toplam iş yürütme süresine hakim olmaya başlar.
- Çoğu iş için, bir HDFS bloğunun boyutuna eşit bir bölünmüş boyut yapmak daha iyidir (varsayılan olarak 64 MB'dir).
- Harita görevlerinin yürütülmesi, çıktının HDFS'ye değil ilgili düğümdeki yerel diske yazılmasına neden olur.
- HDFS yerine yerel diski seçmenin nedeni, HDFS depolama işlemi durumunda meydana gelen çoğaltmadan kaçınmaktır.
- Harita çıktısı, nihai çıktıyı üretmek için azaltma görevleri tarafından işlenen ara çıktıdır.
- İş tamamlandığında, harita çıktısı atılabilir. Bu nedenle, replikasyon ile HDFS'de depolamak aşırı hale gelir.
- Düğüm arızası durumunda, harita çıktısı azaltma görevi tarafından tüketilmeden önce, Hadoop harita görevini başka bir düğümde yeniden çalıştırır ve harita çıktısını yeniden oluşturur.
- Azaltma görevi, veri yerelliği kavramı üzerinde çalışmaz. Her harita görevinin bir çıktısı, azaltma görevine beslenir. Harita çıktısı, azaltma görevinin çalıştığı makineye aktarılır.
- Bu makinede, çıktı birleştirilir ve ardından kullanıcı tanımlı azaltma işlevine aktarılır.
- Harita çıktısının aksine, azaltma çıkışı HDFS'de depolanır (ilk kopya yerel düğümde depolanır ve diğer kopyalar raf dışı düğümlerde depolanır). Yani, azaltma çıktısını yazmak
MapReduce Nasıl Çalışır?
Şimdi bu MapReduce eğitiminde, MapReduce'un nasıl çalıştığını öğreneceğiz
Hadoop, işi görevlere ayırır. İki tür görev vardır:
- Harita görevleri (Bölmeler ve Haritalama)
- Görevleri azaltın (Karıştırma, Azaltma)
yukarıda belirtildiği gibi.
Tam yürütme süreci (her ikisi de Harita ve Azaltma görevlerinin yürütülmesi), a adı verilen iki tür varlık tarafından kontrol edilir.
- Jobtracker : Bir usta gibi davranır (gönderilen işin tam olarak yürütülmesinden sorumludur)
- Çoklu Görev İzleyici : Her biri işi yapan köle gibi davranır
Sistemde yürütülmek üzere gönderilen her iş için, Namenode'da bulunan bir Jobtracker ve Datanode'da bulunan birden fazla görev izleyici vardır .
- Bir iş, daha sonra bir kümedeki birden çok veri düğümünde çalıştırılan birden çok göreve bölünür.
- Farklı veri düğümlerinde çalışmak üzere görevleri planlayarak faaliyeti koordine etmek iş izleyicinin sorumluluğundadır.
- Bireysel görevin yürütülmesi, daha sonra, işin bir bölümünü yürüten her veri düğümünde bulunan görev izleyiciye bakmaktır.
- Görev izleyicinin sorumluluğu, ilerleme raporunu iş izleyiciye göndermektir.
- Buna ek olarak, görev izleyici , sistemin mevcut durumu hakkında kendisini bilgilendirmek için Jobtracker'a periyodik olarak 'kalp atışı' sinyali gönderir .
- Böylece iş takipçisi, her işin genel ilerlemesini takip eder. Görevin başarısız olması durumunda, iş izleyici görevi farklı bir görev izleyicide yeniden planlayabilir.