Mikä on MapReduce Hadoopissa? Suuri data Archirakenne
Mikä on MapReduce Hadoopissa?
MapReduce on ohjelmistokehys ja ohjelmointimalli, jota käytetään valtavien tietomäärien käsittelyyn. MapReduce ohjelmatyö kahdessa vaiheessa, nimittäin Map ja Reduce. Karttatehtävät käsittelevät tietojen jakamista ja kartoittamista, kun taas Reduce tehtävät sekoittavat ja vähentävät dataa.
Hadoop pystyy ajamaan eri kielillä kirjoitettuja MapReduce-ohjelmia: Java, Ruby, Pythonja C++. Pilvilaskennan Map Reducen ohjelmat ovat luonteeltaan rinnakkaisia, joten ne ovat erittäin hyödyllisiä suuren mittakaavan data-analyysin suorittamiseen useilla klusterin koneilla.
Jokaisen vaiheen syöttö on avainarvo pareja. Lisäksi jokaisen ohjelmoijan on määritettävä kaksi toimintoa: karttatoiminto ja vähentää toimintaa.
MapReduce ArchiBig Datan rakenne, joka on selitetty esimerkillä
Koko prosessi käy läpi neljä suoritusvaihetta, nimittäin jakamisen, kartoituksen, sekoittamisen ja vähentämisen.
Tässä MapReduce-opetusohjelmassa ymmärrämme MapReduce-esimerkin avulla –
Oletetaan, että sinulla on seuraavat syöttötiedot MapReduce in -laitetta varten Big data ohjelma
Welcome to Hadoop Class Hadoop is good Hadoop is bad
MapReduce-tehtävän lopullinen tulos on
huono | 1 |
luokka | 1 |
hyvä | 1 |
Hadoop | 3 |
is | 2 |
että | 1 |
Tervetuloa | 1 |
Data käy läpi seuraavat MapReduce in Big Data -vaiheet
Syöttöjaot:
MapReduce in Big Data -työn syöte jaetaan kiinteän kokoisiin osiin, joita kutsutaan nimellä tulo jakaa Syöttöjako on osa syötteestä, jonka yksi kartta kuluttaa
Kartoitus
Tämä on ensimmäinen vaihe map-reduce-ohjelman suorittamisessa. Tässä vaiheessa kunkin jaon tiedot välitetään kartoitusfunktiolle lähtöarvojen tuottamiseksi. Esimerkissämme kartoitusvaiheen tehtävänä on laskea kunkin sanan esiintymien lukumäärä syöttöjakoista (lisätietoja syöttöjaosta on alla) ja laatia luettelo muodossa
sekoitus
Tämä vaihe kuluttaa kartoitusvaiheen ulostulon. Sen tehtävänä on konsolidoida asiaankuuluvat tietueet kartoitusvaiheen tulosteesta. Esimerkissämme samat sanat kerrataan yhteen niiden vastaavan taajuuden kanssa.
Vähentäminen
Tässä vaiheessa Shuffling-vaiheen lähtöarvot kootaan yhteen. Tämä vaihe yhdistää sekoitusvaiheen arvot ja palauttaa yhden lähtöarvon. Lyhyesti sanottuna tämä vaihe tiivistää koko tietojoukon.
Esimerkissämme tämä vaihe aggregoi sekoitusvaiheen arvot eli laskee jokaisen sanan kokonaisesiintymät.
MapReduce Archikuvataan yksityiskohtaisesti
- Jokaista jakoa kohti luodaan yksi karttatehtävä, joka sitten suorittaa karttatoiminnon kullekin jaon tietueelle.
- Useiden jakojen käyttäminen on aina hyödyllistä, koska jaon käsittelyyn kuluva aika on pieni verrattuna koko syötteen käsittelyyn. Kun splitit ovat pienempiä, käsittely on parempi kuormittaa tasaisesti, koska käsittelemme jakoja rinnakkain.
- Kuitenkaan ei myöskään ole toivottavaa, että halkeamat ovat kooltaan liian pieniä. Kun jaot ovat liian pieniä, jakojen hallinnan ja kartoitustehtävien luomisen ylikuormitus alkaa hallita työn kokonaissuoritusaikaa.
- Useimmissa töissä on parempi tehdä jakokoko HDFS-lohkon koon verran (joka on oletuksena 64 Mt).
- Karttatehtävien suorittaminen johtaa tulosteen kirjoittamiseen vastaavan solmun paikalliselle levylle, ei HDFS:lle.
- Syy paikallisen levyn valitsemiseen HDFS:n sijaan on replikoinnin välttäminen HDFS-säilötoiminnan yhteydessä.
- Karttatulos on välituloste, joka käsitellään vähennystehtävillä lopullisen tuotoksen tuottamiseksi.
- Kun työ on valmis, karttatuloste voidaan heittää pois. Joten sen tallentaminen HDFS:ään replikoinnin kanssa tulee ylivoimaiseksi.
- Jos solmu epäonnistuu, ennen kuin vähennystehtävä kuluttaa karttatulosteen, Hadoop suorittaa karttatehtävän uudelleen toisessa solmussa ja luo karttatulosteen uudelleen.
- Vähennä tehtävää ei toimi tietojen paikallisuuden käsitteen kanssa. Jokaisen karttatehtävän tulos syötetään vähennystehtävään. Karttatulos siirretään koneelle, jossa vähennystehtävä on käynnissä.
- Tässä koneessa tulos yhdistetään ja siirretään sitten käyttäjän määrittämälle vähennystoiminnolle.
- Toisin kuin karttatuloste, pienennystuloste tallennetaan HDFS (ensimmäinen replika tallennetaan paikalliseen solmuun ja muut replikat off-rack-solmuihin). Joten, kirjoittamalla vähentää tuotantoa
Miten MapReduce Organisaatiot toimivat?
Nyt tässä MapReduce-opetusohjelmassa opimme, kuinka MapReduce toimii
Hadoop jakaa työn tehtäviin. Tehtäviä on kahdenlaisia:
- Karttatehtävät (jako ja kartoitus)
- Vähennä tehtäviä (Sekoitus, pienentäminen)
kuten yllä mainittu.
Täydellistä suoritusprosessia (Map- ja Reduce-tehtävien suorittamista, molemmat) ohjaavat kahden tyyppiset entiteetit, joita kutsutaan nimellä
- Jobtracker: Toimii kuin a mestari (vastaa lähetetyn työn täydellisestä suorittamisesta)
- Useita Task Trackers: Toimii kuten Orjat, jokainen heistä hoitaa tehtävänsä
Jokaiselle järjestelmässä suoritettavaksi lähetetylle työlle on yksi Jobtracker joka asuu Namenode ja siellä on useita Tasktrackers jotka asuvat Datasolmu.
- Työ jaetaan useisiin tehtäviin, jotka ajetaan sitten useille klusterin datasolmuille.
- Työseuraajan vastuulla on koordinoida toimintaa ajoittamalla tehtäviä suoritettavaksi eri datasolmuissa.
- Yksittäisen tehtävän suorittamisesta huolehtii sitten tehtäväseurantalaite, joka sijaitsee jokaisessa datasolmussa, joka suorittaa osan työstä.
- Tehtäväseuraajan vastuulla on lähettää edistymisraportti työnseurantaan.
- Lisäksi Task Tracker lähettää säännöllisesti 'Sydämenlyönti' Signaali Jobtrackerille ilmoittaakseen hänelle järjestelmän nykyisestä tilasta.
- Näin työnseurantaohjelma seuraa jokaisen työn yleistä edistymistä. Jos tehtävä epäonnistuu, työnseurantaohjelma voi ajoittaa sen uudelleen toiseen tehtäväseurantaan.