Hadoop'ta MapReduce nedir? ArchiYapı ve Diyagram
⚡ Akıllı Özet
MapReduce, büyük bir veri setini, her bir girdi bölümü üzerinde bir map fonksiyonu ve ardından gruplandırılmış ara değerler üzerinde bir reduce fonksiyonu çalıştırarak küçük bir sonuca dönüştüren Hadoop programlama modelidir.
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 programları, Eşleme (Map) ve Azaltma (Reduce) olmak üzere iki aşamada çalışır. Eşleme görevleri, verileri bölme ve birleştirme işlemlerini içerir.ping Veri işleme sırasında, Reduce görevleri verileri karıştırır ve azaltır.
Hadoop'un Çeşitli dillerde yazılmış MapReduce programlarını çalıştırabilir: JavaYakut, Python, ve C++MapReduce programları doğaları gereği paraleldir, bu nedenle kümedeki birden fazla makine kullanarak büyük ölçekli veri analizi yapmak için çok kullanışlıdırlar.
Her aşamanın girdisi anahtar-değer çiftleridir. Ayrıca, her programcının iki fonksiyon belirtmesi gerekir: bir eşleme fonksiyonu ve bir indirgeme fonksiyonu.
Harita indirgeme ArchiBüyük Veride Yapı Örnekle Açıklanıyor
Tüm süreç, bölme, eşleme ve haritalama olmak üzere dört aşamadan geçer.pingKarıştırma ve azaltma.
Şimdi bu MapReduce eğitiminde, bir MapReduce örneğiyle konuyu anlayalım.
MapReduce işleminiz için aşağıdaki girdi verilerine sahip olduğunuzu varsayalım. büyük Veri Program:
Welcome to Hadoop Class Hadoop is good Hadoop is bad
Aşağıdaki diyagram tracBu üç çizgiyi, soldaki giriş bölmelerinden sağdaki nihai kelime sayımlarına kadar her aşamada takip edin.
MapReduce görevinin son çıktısı:
| kötü | 1 |
| Sınıf | 1 |
| Tercih Etmenizin | 1 |
| Hadoop'un | 3 |
| is | 2 |
| için | 1 |
| Hoşgeldiniz | 1 |
Büyük Veri ortamında MapReduce, verileri aşağıdaki aşamalardan geçirir.
Giriş Bölmeleri
Büyük Veri'de MapReduce işine giren veriler, girdi bölmeleri adı verilen sabit boyutlu parçalara ayrılır. Bir girdi bölmesi, tek bir eşleme işlemi tarafından kullanılan girdinin bir bölümüdür.
Haritaping
Bu, MapReduce programının yürütülmesindeki ilk aşamadır. Bu aşamada, her bir bölmedeki veriler bir haritaya aktarılır.ping Çıktı değerleri üreten fonksiyon. Örneğimizde, map fonksiyonunun görevi budur.ping Bu aşama, girdi bölümlerinden (girdi bölümleri hakkında daha fazla ayrıntı aşağıda verilmiştir) her kelimenin kaç kez geçtiğini saymak ve aşağıdaki biçimde bir liste hazırlamaktır: .
karıştırma
Bu aşama, Harita'nın çıktısını tüketir.ping Bu aşama, haritadaki ilgili kayıtları bir araya getirme görevini içerir.ping Faz çıkışı. Örneğimizde, aynı kelimeler ilgili frekanslarıyla birlikte gruplandırılmıştır.
Indirgen
Bu aşamada, Karıştırma aşamasından elde edilen çıktı değerleri toplanır. Bu aşama, Karıştırma aşamasındaki değerleri birleştirir ve tek bir çıktı 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 gelen değerleri bir araya getirir, yani her kelimenin toplam geçme sayısını hesaplar.
Harita indirgeme Archiayrıntılı olarak açıklanan doku
Aşağıdaki maddeler, bölme işlemlerinin, eşleme görevlerinin ve azaltma görevlerinin küme genelinde nasıl yerleştirildiğini ve depolandığını açıklamaktadır.
- Her bir bölüm için bir eşleme görevi oluşturulur ve bu görev, bölümdeki her kayıt için eşleme işlevini yürütür.
- Birden fazla bölme işlemine sahip olmak her zaman faydalıdır çünkü bir bölme işleminin süresi, tüm girdinin işlenmesi için gereken süreye kıyasla daha kısadır. Bölme işlemleri daha küçük olduğunda, paralel olarak işlendikleri için işlem yükü daha iyi dengelenir.
- Ancak, çok küçük bölmeler olması da istenmeyen bir durumdur. Bölmeler çok küçük olduğunda, bölmeleri yönetmenin ve eşleme görevleri oluşturmanın getirdiği ek yük, toplam iş yürütme süresine baskın gelmeye başlar.
- Çoğu iş için, bölme boyutunu bir parçanın boyutuna eşit yapmak daha iyidir. HDFS Hadoop 2.x ve sonrasında varsayılan olarak 128 MB olan (Hadoop 1.x'te 64 MB idi) ve tarafından kontrol edilen blok
dfs.blocksizeözelliği. - Haritalama görevlerinin yürütülmesi, çıktının HDFS'ye değil, ilgili düğümdeki yerel bir diske yazılmasıyla sonuçlanır.
- Yerel diski HDFS'ye tercih etmenin nedeni, HDFS depolama işlemi sırasında gerçekleşen çoğaltmadan kaçınmaktır.
- Harita çıktısı, nihai çıktıyı üretmek için görevlerin azaltılmasıyla işlenen ara çıktıdır.
- İş tamamlandıktan sonra harita çıktısı atılabilir. Bu nedenle, çoğaltmayla HDFS'de depolamak aşırıya kaçıyor.
- 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.
- Reduce görevleri veri yerelliği kavramına göre çalışmaz. Her map görevinin çıktısı reduce görevine beslenir. Map çıktısı, reduce 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.
- Haritalama çıktısının aksine, indirgeme çıktısı HDFS'de depolanır (ilk kopya yerel düğümde, diğer kopyalar ise harici düğümlerde depolanır). Bu nedenle, indirgeme çıktısının yazılması ağ bant genişliğini tüketir, ancak yalnızca normal bir HDFS yazma işlem hattının tükettiği kadar.
MapReduce Çalışmayı Nasıl Organize Ediyor?
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 Harita)ping)
- Görevleri azaltmak (Yeniden düzenleme, Azaltma)
Map ve Reduce görevlerinin her ikisinin de yürütülmesini içeren tüm yürütme süreci, iki tür varlık tarafından kontrol edilir:
- İşTracker: bir yönetici gibi davranır ve gönderilen işin eksiksiz yürütülmesinden sorumludur.
- Çoklu GörevTracKers: Köle gibi davranırlar, her biri işin bir bölümünü yerine getirir.
Sisteme yürütülmek üzere gönderilen her iş için bir adet İş bulunur.TracNameNode üzerinde bulunan bir ker nesnesi vardır ve birden fazla Task mevcuttur.TracVeri düğümlerinde bulunan kers'ler.
Not: işTracKer ve GörevTracKer çifti, MapReduce sürüm 1'e (Hadoop 1.x) aittir. Hadoop 2.x'ten itibaren YARN, bu görevleri küme genelindeki bir ResourceManager, her düğümdeki bir NodeManager ve iş başına bir ApplicationMaster arasında bölüştürür; ancak eşleme, karıştırma ve azaltma aşamalarının kendileri değişmeden kalır.
Aşağıdaki diyagram, gönderilen bir işin görevlere nasıl bölündüğünü göstermektedir. tracKüme genelinde.
- Bir iş, birden fazla göreve bölünür ve bu görevler daha sonra bir kümedeki birden fazla veri düğümünde çalıştırılır.
- Bu, işin sorumluluğudur. tracKer, farklı veri düğümlerinde çalışacak görevleri planlayarak etkinliği koordine eder.
- Daha sonra, bireysel bir görevin yerine getirilmesi görev yöneticisi tarafından ele alınır. tracKer, işin bir bölümünü yürüten her veri düğümünde bulunur.
- Görev tracKer'in sorumluluğu, iş ilerleme raporunu ilgili birime göndermektir. tracKer.
- Ek olarak, görev tracKer, periyodik olarak Job'a bir 'kalp atışı' sinyali gönderir.Tracker'e sistemin mevcut durumu hakkında bilgi vermek amacıyla.
- Dolayısıyla iş tracKer saklıyor tracHer bir işin genel ilerlemesinin k'sı. Görev başarısız olursa, iş tracKer bunu farklı bir göreve yeniden planlayabilir. tracKer.


