Mikä on MapReduce Hadoopissa? Arkkitehtuuri - Esimerkki

Sisällysluettelo:

Anonim

Mikä on MapReduce Hadoopissa?

MapReduce on ohjelmistokehys ja ohjelmointimalli, jota käytetään valtavien tietomäärien käsittelyyn. MapReduce- ohjelmatyö on kahdessa vaiheessa, nimittäin Map ja Reduce. Karttatehtävät käsittelevät tietojen jakamista ja kartoittamista.

Hadoop pystyy suorittamaan MapReduce-ohjelmia, jotka on kirjoitettu eri kielillä: Java, Ruby, Python ja C ++. Map Reduce -ohjelmat pilvipalveluissa ovat luonteeltaan rinnakkaisia, joten ne ovat erittäin hyödyllisiä laajamittaisen data-analyysin suorittamiseen klusterin useilla koneilla.

Kunkin vaiheen tulo on avainarvopareja . Lisäksi jokaisen ohjelmoijan on määritettävä kaksi toimintoa: karttatoiminto ja vähennysfunktio .

Tässä aloittelijan Hadoop MapReduce -oppaassa opit-

  • Mikä on MapReduce Hadoopissa?
  • MapReduce Architecture in Big Data selitetään yksityiskohtaisesti
  • MapReduce Architecture selitetään yksityiskohtaisesti
  • Kuinka MapReduce organisoi työn?

MapReduce Architecture in Big Data selitetään yksityiskohtaisesti

Koko prosessi käy läpi neljä toteutusvaihetta, nimittäin jakaminen, kartoitus, sekoittaminen ja pienentäminen.

Nyt tässä MapReduce-opetusohjelmassa ymmärretään MapReduce-esimerkillä -

Harkitse, että sinulla on seuraavat syöttötiedot MapReduce in Big data -ohjelmaan

Welcome to Hadoop ClassHadoop is goodHadoop is bad

MapReduce Arkkitehtuuri

MapReduce-tehtävän lopullinen tulos on

huono 1
Luokka 1
hyvä 1
Hadoop 3
On 2
että 1
Tervetuloa 1

Tiedot käyvät läpi seuraavat MapReduce-vaiheet Big Data -palvelussa

Syöttöjakaumat:

Big Data -työn MapReduce-tulo jaetaan kiinteäkokoisiksi paloiksi, joita kutsutaan input splitiksi. Input split on palan tulo, jonka yksi kartta kuluttaa

Kartoitus

Tämä on ensimmäinen vaihe kartan pienennysohjelman toteutuksessa. Tässä vaiheessa kunkin jaon tiedot siirretään kartoitustoiminnolle lähtöarvojen tuottamiseksi. Esimerkissämme kartoitusvaiheen tehtävänä on laskea kunkin sanan esiintymien määrä syöttöjakoista (lisätietoja syöttöjakaumasta on annettu alla) ja valmistella luettelo muodossa

Sekoittaminen

Tämä vaihe kuluttaa kartoitusvaiheen lähdön. Sen tehtävänä on konsolidoida asiaankuuluvat tietueet kartoitusvaiheen tuotoksesta. Esimerkissämme samat sanat yhdistetään niiden taajuuden kanssa.

Pienentäminen

Tässä vaiheessa sekoitusvaiheen lähtöarvot kootaan. Tämä vaihe yhdistää sekoitusvaiheen arvot ja palauttaa yhden lähtöarvon. Lyhyesti sanottuna tässä vaiheessa esitetään yhteenveto koko aineistosta.

Esimerkissämme tämä vaihe yhdistää arvot sekoitusvaiheesta eli laskee kunkin sanan kokonaisesiintymät.

MapReduce Architecture selitetään yksityiskohtaisesti

  • Kullekin osalle luodaan yksi karttatehtävä, joka suorittaa sitten karttatoiminnon jokaiselle jaetulle tietueelle.
  • On aina hyödyllistä, että käytössä on useita jakoja, koska jaon käsittelyyn kuluva aika on pieni verrattuna koko panoksen käsittelyyn kuluvaan aikaan. Kun halkeamat ovat pienempiä, käsittely on parempi ladata tasapainoisesti, koska käsittelemme halkeamia rinnakkain.
  • Ei myöskään ole toivottavaa, että halkeamat ovat liian pieniä. Kun osiot ovat liian pieniä, jakojen hallinnan ja karttatehtävien luomisen ylikuormitus alkaa hallita työn suorittamisen kokonaisaikaa.
  • Useimmissa töissä on parempi tehdä jakokoko, joka on yhtä suuri kuin HDFS-lohkon koko (joka on oletusarvoisesti 64 Mt).
  • Karttatehtävien suorittaminen johtaa tulostuksen kirjoittamiseen vastaavan solmun paikalliselle levylle eikä HDFS: lle.
  • Syynä paikallisen levyn valitsemiseen HDFS: n sijaan on välttää replikaatio, joka tapahtuu HDFS-myymälän toiminnan yhteydessä.
  • Karttatulos on välituotanto, joka käsitellään pienennetyillä tehtävillä lopullisen tuotoksen tuottamiseksi.
  • Kun työ on valmis, kartan tulos voidaan heittää pois. Joten sen tallentaminen HDFS: ään replikoinnilla tulee ylenmääräiseksi.
  • Jos solmu epäonnistuu, Hadoop suorittaa karttatehtävän uudelleen toisessa solmussa ja luo karttatuloksen uudelleen, ennen kuin vähennystehtävä kuluttaa kartan ulostulon.
  • Pienennä tehtävä ei toimi tietopaikan käsitteellä. Jokaisen karttatehtävän tulos syötetään vähennettyyn tehtävään. Karttatulos siirretään koneeseen, jossa pienennystoiminto on käynnissä.
  • Tällä koneella lähtö yhdistetään ja siirretään sitten käyttäjän määrittelemään vähennystoimintoon.
  • Toisin kuin karttatulos, vähennetty tuotos tallennetaan HDFS: ään (ensimmäinen kopio tallennetaan paikalliseen solmuun ja muut kopiot tallennetaan off-rack-solmuihin). Joten, kirjoittamalla vähennysteho

Kuinka MapReduce organisoi työn?

Tässä MapReduce-opetusohjelmassa opitaan, miten MapReduce toimii

Hadoop jakaa työn tehtäviin. Tehtäviä on kahdenlaisia:

  1. Kartta tehtävät (Splits & Mapping)
  2. Vähennä tehtäviä (satunnaistoisto, pienennys )

kuten yllä mainittu.

Koko toteutusprosessia (molemmat Map- ja Reduce-tehtävien suorittamista) ohjaavat kahden tyyppiset entiteetit, joita kutsutaan a

  1. Jobtracker : Toimii päällikkönä (vastuussa lähetetyn työn täydellisestä suorittamisesta)
  2. Useita tehtävänseurajia : Toimii orjina, kukin heistä suorittaa työn

Jokaisessa järjestelmässä suoritettavaksi lähetetyssä työssä on yksi Jobenin hakija, joka asuu Namenode-palvelussa, ja useita tehtävänseuraajia, jotka asuvat Datanode-palvelussa .

Kuinka Hadoop MapReduce toimii
  • Työ on jaettu useisiin tehtäviin, jotka sitten suoritetaan klusterin useille datasolmuille.
  • Työnhakijan vastuulla on koordinoida toimintaa aikatauluttamalla tehtäviä suoritettavaksi eri datasolmuille.
  • Yksittäisen tehtävän suorittamisesta on sitten huolehdittava tehtäväseurannalla, joka sijaitsee jokaisessa tietosolmussa, joka suorittaa osan työstä.
  • Tehtävänvalvojan vastuulla on lähettää edistymisraportti työnseurantaan.
  • Lisäksi tehtäväseuranta lähettää säännöllisesti 'syke' -signaalin Jobtrackerille ilmoittaakseen hänelle järjestelmän nykyisestä tilasta.
  • Näin työn seuranta seuraa kunkin työn yleistä edistymistä. Tehtävän epäonnistumisen sattuessa työn seuranta voi ajoittaa sen toiseen tehtävän seurantaan.