Kuinka MapReduce toimii? - MapReducen toiminta, vaiheet ja edut

Sisällysluettelo:

Anonim

Johdanto MapReduceen

MapReduce on Hadoop-kehyksen laskennallinen komponentti, jonka avulla voidaan helposti kirjoittaa sovelluksia, jotka prosessoivat suuria määriä tietoja rinnakkain ja tallentavat suuriin halpojen hyödykekoneiden ryhmiin luotettavalla ja vikasietoisella tavalla. Aiheesta aiomme oppia kuinka MapReduce toimii?

MapReduce voi suorittaa hajautettuja ja rinnakkaislaskutoimituksia käyttämällä suuria tietojoukkoja suuren määrän solmuja. MapReduce-työ jakaa yleensä syöttötiedot ja prosessoi sitten kukin niistä itsenäisesti karttatehtävissä täysin rinnakkain. Sitten lähtö lajitellaan ja syötetään tehtävien vähentämiseksi. Sekä työn syöttö että lähtö on tallennettu tiedostojärjestelmiin. Tehtävät suunnitellaan ja seurataan puitteissa.

Kuinka MapReduce toimii?

MapReduce-arkkitehtuuri sisältää kaksi ydinkomponenttia Daemon-palveluina, jotka vastaavat mapper- ja reducer-tehtävien suorittamisesta, tehtävien seurannasta ja suorittamisesta uudelleen vikaantumisen yhteydessä. Hadoop 2: ssa lähtien Resurssienhallinta ja Node Manager ovat daemon-palveluita. Kun työasiakas lähettää MapReduce-työn, nämä daemonit alkavat toimia. He vastaavat myös MapReduce-töiden rinnakkaisesta käsittelystä ja vikasietoisuudesta.

Hadoop 2: ssa eteenpäin resurssien hallinta ja työn ajoittaminen tai seurantatoiminnot on erotettu YARN: llä (Yet Another Resource Negotiator) erilaisina daemoneina. Verrattuna Hadoop 1: ään, jossa on Job Tracker ja Task Tracker, Hadoop 2 sisältää globaalin Resurssienhallinnan (RM) ja Application Masters (AM) jokaiselle sovellukselle.

  • Job Client lähettää työn Resurssienhallinnalle.
  • YARN Resource Manager -suunnittelija vastaa klusterin resurssien allokoinnin koordinoinnista käynnissä olevien sovellusten välillä.
  • YARN Node Manager toimii jokaisella solmulla ja suorittaa solmutasotason resurssienhallintaa koordinoidessaan Resurssienhallinnan kanssa. Se käynnistää ja seuraa klusterin koneen laskennallisäiliöitä.
  • Application Master auttaa Resurssienhallinnan resursseja ja käyttää Node Manager -sovellusta MapReduce-tehtävien suorittamiseen ja koordinointiin.

  • HDFS: ää käytetään yleensä jakaa tiedostoja muiden yksiköiden välillä.

MapReduce-mallin vaiheet

MapReduce-mallissa on kolme suurta ja yksi valinnainen vaihe:

1. Mapper

  • Se on MapReduce-ohjelmoinnin ensimmäinen vaihe ja sisältää mapper-toiminnon koodauslogiikan.
  • Ehdollista logiikkaa sovelletaan n: n määrään datalohkoja, jotka jakautuvat eri datasolmuihin.
  • Mapper-toiminto hyväksyy avain-arvoparit syötteinä muodossa (k, v), missä näppäin edustaa kunkin tietueen offset-osoitetta ja arvo edustaa koko tietueen sisältöä.
  • Mapper-vaiheen lähtö on myös avain-arvomuodossa (k ', v').

2. Sekoita ja lajittele

  • Eri kartoituslaitteiden (k ', v') lähtö siirtyy sitten sekoitus- ja lajitteluvaiheeseen.
  • Kaikki päällekkäiset arvot poistetaan, ja eri arvot ryhmitellään samanlaisten avainten perusteella.
  • Shuffle- ja Sort-vaiheen lähtö ovat avain-arvopareja jälleen avaimina ja arvoina (k, v ()).

3. Vähennysventtiili

  • Shuffle and Sort -vaiheen lähtö (k, v ()) on Reducer-vaiheen tulo.
  • Tässä vaiheessa reduktoritoiminnon logiikka toteutetaan ja kaikki arvot yhdistetään vastaavia avaimia vastaan.
  • Reducer yhdistää eri kartoituslaitteiden tulokset ja laskee lopullisen työn tuotoksen.
  • Lopullinen tuloste kirjoitetaan sitten yhdeksi tiedostoksi HDFS: n lähtöhakemistoon.

4. Yhdistin

  • Se on valinnainen vaihe MapReduce-mallissa.
  • Yhdistäjävaihetta käytetään MapReduce-töiden suorituskyvyn optimointiin.
  • Tässä vaiheessa erilaiset kartoituslaitteiden lähdöt pienenevät paikallisesti solmutasolla.
  • Esimerkiksi, jos yhdestä solmusta tulevat eri mapper-lähdöt (k, v) sisältävät kopioita, niin ne yhdistetään eli paikallisesti pelkistetään yhtenä (k, v ()) ulostulona.
  • Tämä vaihe tekee sekoitus- ja lajitteluvaiheet entistä nopeammiksi, mikä mahdollistaa lisätehokkuuden MapReduce-töissä.

Kaikki nämä MapReduce-työn vaiheet voidaan kuvata alla:

Esimerkiksi MapReduce-logiikka sanamäärän löytämiseksi sanaryhmästä voidaan näyttää alla esitetyllä tavalla:

fruits_array = (omena, appelsiini, omena, guajava, viinirypäleet, appelsiini, omena)

  • Karttaajavaihe merkitsee sanamäärän syötejoukon 'n' sanamääräksi antamaan tulosteen muodossa (k, v). Ajattele esimerkiksi omenaa. Mapper-lähtö on (omena, 1), (omena, 1), (omena, 1).
  • Sekoita ja lajittele hyväksyä mapper (k, v) -lähtö ja ryhmittele kaikki arvot niiden näppäinten mukaan (k, v ()). eli (omena, (1, 1, 1)).
  • Reducer-vaihe hyväksyy sekoitus- ja lajittelulähdön ja antaa arvojen aggregaatin (omena, (1 + 1 + 1)), jotka vastaavat heidän näppäimiään. eli (omena, 3).

MapReduce-työn spekulatiivinen toteutus

MapReducen nopeutta hallitsee hitain tehtävä. Joten nopeuden lisäämiseksi uusi karttaaja toimii samalla aineistolla samaan aikaan. Se, mikä suorittaa tehtävän ensin, katsotaan lopulliseksi tuotokseksi ja toinen tapetaan. Se on optimointitekniikka.

MapReducen edut

Tässä mainitaan MapReducen edut alla

1. Vikasietoisuus

  • Karttaa pienentävän työn keskellä, jos muutamaa datalohkoa kuljettava kone epäonnistuu, arkkitehtuuri käsittelee vian.
  • Se harkitsee kopioidut lohkot vaihtoehtoisissa koneissa jatkokäsittelyä varten.

2. Joustavuus

  • Jokainen solmu päivittää tilaansa määräajoin isäntäsolmuksi.
  • Jos orjasolmu ei lähetä ilmoitusta, isäntäsolmu osoittaa kyseisen slave-solmun parhaillaan käynnissä olevan tehtävän muille klusterin käytettävissä oleville solmuille.

3. Nopea

  • Tietojen käsittely on nopeaa, koska MapReduce käyttää HDFS: ää tallennusjärjestelmänä.
  • MapReduce kestää minuutteja teratavujen käsittelemättömien suurten tietomäärien käsittelemiseen.

4. Rinnakkaisprosessointi

  • MapReduce-tehtävät käsittelevät samojen tietojoukkojen useita paloja samanaikaisesti jakamalla tehtävät.
  • Tämä antaa etuna tehtävän suorittamisen lyhyemmässä ajassa.

5. Saatavuus

  • Useita saman datan kopioita lähetetään lukuisiin verkon solmuihin.
  • Siten, mikäli vika ilmenee, muut kopiot ovat helposti käytettävissä käsittelyä varten ilman mitään menetystä.

6. Skaalautuvuus

  • Hadoop on erittäin skaalautuva alusta.
  • Perinteiset RDBMS-järjestelmät eivät ole skaalautuvia datan määrän kasvun mukaan.
  • MapReduce antaa sinun suorittaa sovelluksia valtavasta määrästä solmuja käyttämällä teratavua ja petatavua dataa.

7. Kustannustehokas

  • Hadoopin skaalausominaisuuden ja MapReduce-ohjelmoinnin avulla voit tallentaa ja käsitellä tietoja erittäin tehokkaalla ja edullisella tavalla.
  • Kustannussäästöt voivat olla valtavia, kun luku on satoja teratavuina dataa.

Johtopäätös - miten MapReduce toimii

Nykyaikainen data on siirtymässä enemmän jäsentämätöntä tyyppiä kohti ja valtava, tavanomainen tietojenkäsittelyvaihtoehto, kuten RDBMS, on vielä vaikeampaa, aikaa vievä ja kallis. Mutta Hadoopin MapReduce-ohjelmointi on paljon tehokkaampaa, turvallisempaa ja nopeampaa käsitellä jopa teratavujen tai petatavujen suuria tietojoukkoja.

Suositellut artikkelit

Tämä on opas kuinka MapReduce toimii. Tässä keskustellaan MapReduce-mallin vaiheista ja eduista ja miten se toimii. Saatat myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Hadoop-ekosysteemikomponentit
  2. MapReduce-algoritmit
  3. Mikä on MapReduce Hadoopissa?
  4. MapReduce -haastattelukysymykset