hadoop mapreduce tutorial with examples what is mapreduce
Bu Eğiticide, MapReduce Nedir, Avantajları ve Hadoop Map Reduce'un Örneklerle nasıl çalıştığını anlayacağız:
Önceki eğitimde, Hadoop HDFS ve Okuma ve Yazma Mekanizmaları hakkında bilgi edindik. Şimdi başka bir Hadoop Bileşenini, yani MapReduce'u inceleyelim.
Aşağıdakilere ayrıntılı bir şekilde bakalım:
- MapReduce nedir?
- Faydaları
- MapReduce'un kesin yaklaşımı nedir?
=> Özel BigData Eğitim Eğitim Dizisi İçin Burayı Ziyaret Edin.
Ne öğreneceksin:
MapReduce Nedir?
Devam edelim ve Hadoop Bileşenleri ile başlayalım. Daha önce açıklandığı gibi, Hadoop'un iki ana bileşeni vardır, yani Hadoop HDFS ve Hadoop Map Reduce.
Hadoop HDFS, çok miktarda Veriyi birden çok rafta depolamak için kullanılan bir Dosya Dağıtım Sistemidir.
Burada Hadoop'un işleme birimini, yani MapReduce'u tartışacağız.
Ortaya çıkan bir sonraki soru, 'Harita Azaltma nedir ve neden gereklidir?'
Hadoop MapReduce, 'İşleme ünitesi' ve bu bileşeni kullanarak, Hadoop HDFS'de depolanan Büyük Verileri işleyebiliriz.
Ama kesin gereklilik nedir? Hadoop'un bu bileşenine neden ihtiyacımız var?
Hadoop HDFS'de depolanan Büyük Veriler geleneksel olarak depolanmaz. Veriler, ilgili DataNode'larda depolanan veri yığınlarına bölünür. Dolayısıyla tüm veriler tek bir merkezi konumda depolanmaz.
Dolayısıyla, Java gibi yerel bir istemci uygulaması veya bu tür herhangi bir uygulama, verileri mevcut formatta işleyemez ve ilgili DataNode'larda depolanan parçalanmış veri bloklarını işleyebilecek özel bir çerçeveye ihtiyacımız var.
İşleme, Hadoop MapReduce işlemi kullanılarak yapılır.
Özetle Harita Azaltın
Yukarıdaki şema, Harita Azaltma, özellikleri ve kullanımlarına genel bir bakış sunar.
MapReduce uygulamaları ve nerede kullanıldığı ile başlayalım. Örneğin, için kullanılır Sınıflandırıcılar, İndeksleme ve Arama ve Yaratılışı Öneri Motorları e-ticaret sitelerinde (Flipkart, Amazon, vb.) Analitik birkaç şirket tarafından.
Özellikler açısından baktığımızda, bu bir Programlama Modeli ve için kullanılabilir Büyük Ölçekli Dağıtık Modeli Hadoop HDFS gibi ve onu çok kullanışlı kılan Paralel Programlama özelliğine sahiptir.
Map Reduce'da fonksiyonları gördüğümüzde, Map Function ve Reduce fonksiyonu olmak üzere iki fonksiyon çalıştırılır.
Bu teknoloji, Google, Yahoo, Facebook gibi büyük kuruluşlar tarafından uygulanmıştır ve ayrıca HDFS, PIG, HIVE gibi Apache Hadoop tarafından ve No-SQL olarak da bilinen HBase kullanarak veri depolamak veya Büyük Verileri yürütmek ve işlemek için benimsenmiştir.
daha yeni olanlar için kalite güvence mülakat soruları ve cevapları
Harita Azaltmanın Avantajları
Bu teknolojinin iki avantajı vardır.
# 1) Paralel İşleme
İlk avantaj paralel işlemedir. Map Reduce kullanarak verileri her zaman paralel olarak işleyebiliriz.
Yukarıdaki diyagrama göre, beş Bağımlı Makine vardır ve bazı veriler bu Makinelerde bulunmaktadır. Burada veriler, Hadoop Map Reduce kullanılarak paralel olarak işlenir ve böylece işlem hızlı hale gelir.
Aslında burada olan şey, tüm veri yığınlarının Hadoop HDFS tarafından HDFS Bloğuna bölünmesi ve Map-Reduce bu veri yığınlarını işler ve böylece işlemin hızlı hale gelmesidir.
# 2) Veri Konumu
Bu, Hadoop MapReduce tarafından verilen çok yönlü bir şeydir, yani verileri olduğu yerde işleyebiliriz.
Bunun anlamı ne?
Önceki HDFS eğitiminde, Hadoop Kümesine taşıdığımız verilerin HDFS Bloklarına bölündüğünü ve bu Blokların SlaveMachines veya DataNodes olarak kaydedildiğini anladık. Map-Reduce, verilerin HDFS Blokları olarak bulunduğu ilgili Bağımlı Düğümlere veya Veri Düğümlerine yönelik işleme ve mantığı algılar.
İşleme, paralel olarak birden çok konumda daha küçük bir veri yığını üzerinde yürütülür. Bu, Büyük Verileri bir konumdan diğerine taşımak için gerekli olan Ağ Bant Genişliğinin yanı sıra çok fazla zaman kazandırır.
İşlediğimiz verilerin büyük veri parçalara ayrılmış olduğunu unutmayın ve Büyük Veriyi doğrudan ayrılmış Ağ kanallarından merkezi bir makineye taşımaya ve işlemeye başlarsak, tüketeceğimiz için bize hiçbir avantaj sağlamayacaktır. Verilerin merkezi bir sunucuya taşınmasında tüm Bant Genişliği.
Faydaları:
Dolayısıyla, Hadoop MapReduce'u kullanarak yalnızca 'Paralel İşleme' Ayrıca, verileri veri yığınlarının mevcut olduğu ilgili Bağımlı Düğümlerde veya Veri Düğümlerinde işliyoruz ve dolayısıyla biz de 'Çok fazla Ağ Bant Genişliği Tasarrufu' bu çok faydalıdır.
Son olarak, SlaveMachines, SlaveMachines'te depolanan verilerin işlenmesiyle yapılır ve sonuçlar SlaveMachines'da depolanan bloklar kadar büyük olmadığından sonuçları Ana Makineye geri gönderir. Bu nedenle çok fazla bant genişliği kullanmayacaktır.
Bağımlı Makineler sonucu Ana Makineye geri gönderir, bu sonuçlar bir araya toplanır ve nihai sonuç, işi gönderen İstemci Makineye geri gönderilir.
Burada bir soru ortaya çıkıyor - hangi verilerin hangi DataNode'da işlenmesi gerektiğine kim karar veriyor?
Müşteri, işi Kaynak Yöneticisine gönderir ve Kaynak Yöneticisi, verinin bulunduğu ilgili Veri Düğümlerinde işi yürütme yönünü sağlayan kişidir, mevcut olan en yakın Veri Düğümüne göre karar verir, böylece birçok Ağ Bant genişliği kullanılmaz.
Geleneksel Vs. MapReduce Yolu
Bunu açıklamak için, Sigorta Şirketinin Poliçe Sahipleri Başvuru Sayısının gerçek hayattaki bir örneğini alacağız, büyük sigorta şirketlerinin çoğu şubeleri çeşitli şehirlerde olduğundan, herkes Sigorta Şirketi Poliçelerinden haberdar olacaktır.
Bu branşlarda Hayat Sigortası Poliçelerine başvuran “n” kişi bulunmaktadır.
İnsanların gelip Hayat Sigortası Poliçelerine başvurdukları beş sigorta şirketi şubemizin olduğu bir senaryoyu ele alalım. Şimdi, bu sigorta şirketinin mevcut ve bulunan şubeler hakkında tüm bilgileri içeren bir merkezimiz var.
Ancak A, B, C, D, E şubelerinden Hayat Sigortası Poliçesi için gelip başvuruda bulunduklarında poliçe başvuruları ilgili şubelerin kendisinde tutulur ve bu bilgiler Sigorta Şirket Merkezi ile paylaşılmaz.
Geleneksel yol:
İnsanların geleneksel olarak politikaya nasıl başvurduklarını görelim. Geleneksel olarak bu sorunu çözmek için tüm başvurular Sigorta Şirketi Merkezine taşınacak ve ardından başvuru süreci başlayacaktır.
Bu durumda tüm başvuruları masraflı bir iş olan Sigorta Şirketi Merkezine taşımamız yani Sigorta Şirketi Şubelerinden gelen tüm başvuruları toplayıp Sigorta Şirketi Merkezine götürmemiz gerekiyor.
Bu faaliyeti yapmak için büyük çabaların yanı sıra maliyet de bu şekilde dahil edilir.
Bunun bir başka yönü de, kişiler tarafından poliçe için başvurulan tüm başvuruları ilgili şubelerde işleme almak zorunda olduğu için aşırı yüklü Sigorta Şirketi Genel Merkezidir.
Sigorta Şirketi tüm branşlarda yapılan başvuruları işleme aldığı için uzun zaman alacaktır. Sonuçta bu süreç pek iyi işlemiyor.
MapReduce Yolu
Map-Reduce'un bu sorunu nasıl çözdüğünü görelim.
MapReduce, Data Locality'i takip eder, yani tüm başvuruları Sigorta Şirketi Merkezine getirmeyecek, bunun yerine ilgili şubelerdeki başvuruların işlenmesini paralel olarak kendisi yapacaktır.
Her şubeye başvuran başvurular işleme alındıktan sonra işlenen detayları Sigorta Şirket Merkezine geri gönderirler.
Artık Sigorta Şirketi Genel Merkezi, ilgili şubelerden gönderilen işlenmiş başvuruların sayısını toplamalı ve ayrıntıları ilgili Veritabanında veya Depolama Merkezinde tutmalıdır.
Bu şekilde, işlem çok kolay ve hızlı olacak ve Poliçe Sahipleri faydaları çok kısa sürede alacaktır.
Harita Detaylı Olarak Küçült
Önceki örneğimizde, çeşitli şubeler arasında dağıtılan bir girdimiz (uygulamalar) vardı ve her girdi ilgili Harita Fonksiyonu tarafından işlendi.
MapReduce'un iki işlevi olduğunu biliyoruz, yani Harita İşlevi ve Azaltma İşlevi.
İlgili dallarda yapılan işleme kısmı Harita Fonksiyonu tarafından yapıldı. Böylece her şubedeki her girdi (uygulama) Harita Fonksiyonu kullanılarak işlendi, daha sonra işlenen detaylar Sigorta Şirketi Merkezine gönderildi ve toplama kısmı Azaltma Fonksiyonu tarafından yapıldı.
Toplanan işlenmiş başvuru ayrıntıları Çıktı olarak verilmiştir.
Önceki örneğimizde olan buydu. Tüm süreç Harita Görevi ve Görevi Azalt olarak ikiye ayrıldı.
Harita Görevi bir Girdi alır ve Harita Görevinin Çıktısı, Girdi olarak Azaltma Görevine verilir ve bu Azaltma Görevi, Çıktıyı son olarak İstemciye verir.
Bunu daha iyi anlamak için MapReduce'un anatomisine bakalım.
Bir MapReduce Görevi, bir Anahtar-Değer çifti üzerinde çalışır, bu nedenle, bir Harita hakkında konuştuğumuzda, Harita, Giriş'i Anahtar-Değer olarak alır ve çıktıyı bir Anahtar-Değer listesi olarak verir. Bu Anahtar-Değer listesi bir karıştırma aşamasından geçer ve Anahtar Girişi ve bir Değerler listesi İndirgeyici'ye gider.
Son olarak, Redüktör bize Anahtar-Değer çiftlerinin bir listesini verir.
MapReduce Örneği - Kelime Sayma İşlemi
Başka bir örneği ele alalım, yani Kelime Sayımı, MapReduce Yöntemiyle İşlem Yapın. Bu örnek, Java programlamanın giriş örneğiyle aynıdır, yani 'Merhaba Dünya'.
Diyagrama göre, bir Girişimiz vardı ve bu Giriş bölünüyor veya çeşitli Girişlere bölünüyor. Dolayısıyla bu işleme Girdi Bölme adı verilir ve Girdinin tamamı yeni satır karakterine göre veri bölmelerine bölünür.
İlk satır ilk Girdi, yani Bigdata Hadoop HaritasıReduce ikinci satır ikinci Giriştir, yani MapReduce Hive Bigdata benzer şekilde, üçüncü Giriş için, Kovan Hadoop Kovan Haritası .
Bir sonraki aşamaya, yani Haritalama aşamasına geçelim. Şimdi Eşleme aşamasında, Anahtar-Değer çiftlerinin bir listesini oluşturuyoruz. Yani Giriş Anahtar ve Değerdir, burada Anahtar, satır numarasının ofsetinden başka bir şey değildir. Satır numarası Anahtar ve tüm satır Değerdir.
Dolayısıyla, 1. satır için ofset Anahtar ve Değer Bigdata Hadoop HaritasıReduce . Gerçek hayatta, satır numarası veya ofset onaltılık bir sayıdır, ancak bunu kolaylaştırmak için yalnızca 1 veya 2 numara olarak ele alacağız.
Dolayısıyla 1. satır anahtar olacak ve tüm satır değer olacaktır. Eşleme İşlevinden geçerken, Eşleme'nin yapacağı şey, Anahtar-Değer çiftlerinin listesini oluşturacaktır. Örneğin, Büyük veri , yani işlevin yapacağı şey, satırdaki her kelimeyi okuyacak ve virgülden sonra birini (1) işaretleyecektir.
Biri (1) Değer olarak işaretleyecektir; sevmek Bigdata, 1 Hadoop, 1 ve MapReduce, 1 . Buradaki soru, neden her kelimeden sonra bir (1) koyuyoruz?
Çünkü Büyük veri tek sayılır Bigdata, 1 . Benzer şekilde, Hadoop, 1 ve MapReduce, 1 bizzat tek bir sayıya sahip olduğu için birini (1) Değer olarak işaretliyoruz. Aynı şekilde ikinci satır için veya ikinci satır için de var diyelim, MapReduce Hive Bigdata .
Dolayısıyla, aynı şekilde, Eşleme İşlevi bunun için Anahtar-Değer Çiftlerinin listesini yeniden oluşturur ve bu nedenle, sayıya göre Anahtar-Değer çifti listesi MapReduce, 1 Hive, 1 ve Bigdata, 1 .
3. satır için Eşleştirme Fonksiyonunun bir sonucu olarak aynı şeyi alacağız, yani. Kovan, 2 Hadoop, 1 ve MapReduce, 1 .
Karıştırma Aşamasına geçelim, bu aşamada her Anahtar için hazırlanmış bir liste var. Karıştırma aşaması, Anahtarın görünümünü bulacaktır. Büyük veri ve Değerleri listeye ekleyecektir. Öyleyse burada neler olduğunu görelim.
Gelen iki Ok görebildiğimiz gibi, ilk Ok liste 1'den ve başka bir ok liste 2'den geliyor, dolayısıyla sonuç Bigdata, (1,1) .
python if ifadesi tek satırda
Benzer şekilde, kelimesini gördüğümüzde Hadoop yine için Hadoop Değerler için başka bir liste hazırlanacaktır. Gördüğümüz gibi, gelen iki Ok Karıştırmaya işaret ediyor, bu da kelime anlamına geliyor Hadoop Sırasıyla liste 2 ve liste 3'ten alınacak, yani Karıştırma işleminden sonraki nihai sonuç Hadoop, (1; 1) .
Aynı şekilde, diğer kelimeleri de alacağız. Kovan, (1, 1, 1) ve MapReduce, (1, 1, 1) Değerler listesiyle birlikte veya ilgili listelerde kelimelerin mevcudiyetine göre Sayım listesini söyleyin.
Şimdi Azaltma Aşamasına gelin, bu aşamada, listede mevcut olan Değerleri her Anahtarla birleştirmeye başlarız. İçin böylece Büyük veri, Listede iki değer vardı, yani (on bir) bu nedenle bu değerlerin sunulması Bigdata, 2 .
Benzer şekilde Hadoop Değer toplam olacaktır, yani (on bir) teslim olacak Hadoop, 2 .
Aynı şekilde Kovan ve Harita indirgeme, Azaltma İşlevi için gönderim yapılacak Kovan, 3 ve MapReduce, 3 sırasıyla.
Sonunda, nihai sonuç aşağıdaki 'Genel Harita Azaltma Kelime Sayımı İşlemi' şemasında gösterildiği gibi Müşteriye geri gönderilecektir.
Genel MapReduce Word Count Process
MapReduce Way'i kullandığınızda tüm Kelime Sayma süreci bu şekilde çalışır.
Sonuç
Bu eğitimde aşağıdakileri öğrendik:
- Hadoop Map Reduce, 'İşleme ünitesi' Hadoop.
- Hadoop HDFS Tarafından Depolanan Büyük Verileri işlemek için Hadoop Map Reduce kullanıyoruz.
- Arama ve İndeksleme, Sınıflandırma, Tavsiye ve Analizlerde kullanılır.
- Programlama Modeli, Paralel Programlama ve Büyük Ölçekli Dağıtık Model gibi özelliklere sahiptir.
- MapReduce Modelini Tasarlama: Özetleme, En İyi Kayıtların Sınıflandırılması, Sıralama ve Katılma ve Seçim gibi Analitik.
- Sadece iki işlevi vardır yani Eşleştirici İşlevi ve İndirgeyici İşlevi.
- Paralel İşleme ve Veri Konumu, Hadoop MapReduce'un iyi avantajlarıdır.
- MapReduce Süreci altı aşamaya bölünmüştür, yani GİRİŞ, BÖLME, EŞLEME, KARŞILAŞTIRMA, AZALTMA ve SON SONUÇ.
Hepsi bu eğitici için, yaklaşan eğiticilerimizde şunları ele alacağız:
- MapReduce, YARN ve bileşenleri ile nasıl çalışır?
- YARN'ın Uygulama İş Akışı.
- Spark nedir ve Hadoop ile Spark arasındaki fark nedir?
=> TÜM BigData Eğitimlerini Buradan Kontrol Edin.
Önerilen Kaynaklar
- Hadoop nedir? Yeni Başlayanlar İçin Apache Hadoop Eğitimi
- Örneklerle Python DateTime Eğitimi
- Data Mart Eğitimi - Data Mart Türleri, Örnekleri ve Uygulaması
- Veri Ambarında Boyutlu Veri Modeli - Örneklerle Eğitim
- Kod Örnekleriyle Java Dizi Uzunluğu Eğitimi
- Yeni Başlayanlar İçin Büyük Veri Eğitimi | Büyük Veri Nedir?
- Örneklerle Unix Shell Komut Dosyası Oluşturma Eğitimi
- Selenyum Örneklerle Metin Eğitimi ile Eleman Bul