What are the Hadoop MapReduce concepts?

What do you mean by Map-Reduce programming?

MapReduce is a programming model designed for processing large volumes of data in parallel by dividing the work into a set of independent tasks.

MapReduce ohjelmointi malli on inspiroinut funktionaalisia kieliä ja tavoitteet tietointensiiviset laskelmat. Lähtötiedot muoto on sovelluskohtainen, ja on käyttäjän määrittämä. Tuotos on joukko <avain,arvo> paria. Käyttäjä ilmaisee algoritmin avulla kaksi funktiota, Kartta ja Vähennä. Kartta-toiminto levitetään lähtötiedot ja tuottaa listan väli- <avain,arvo> paria. Reduce toiminto sovelletaan kaikkiin väli- paria samalla avaimella. Se yleensä tekee jonkinlaista yhdistämällä toimintaa ja tuottaa nolla tai useamman lähtö pareja. vihdoin, lähtö parit lajitellaan niiden avainarvo. Vuonna yksinkertaisin MapReduce ohjelmien, ohjelmoija antaa juuri Map toiminto. Kaikki muut toiminnot, mukaan lukien ryhmittely välissä paria, joilla on sama avain ja lopullinen lajittelu, tarjoaa ajonaikaisen.

Vaiheita MapReduce mallin

Ylimmän tason yksikkö työn MapReduce on työpaikka. Työ on yleensä kartan ja vähentää vaihe, vaikka vähentää vaihe voidaan jättää pois. For example, harkita MapReduce työtä, joka laskee kuinka monta kertaa kukin sana on käytetty yli joukon asiakirjoja. Kartan vaihe laskee sanat jokaisen asiakirjan, sitten vähentää vaiheen aggregaatit per-asiakirjan tiedot sana laskee ulottuu koko kokoelma.

Aikana karttaa vaiheessa, lähtötiedot on jaettu tulo halkeaa analyysiä varten kartan tehtäviä käynnissä samanaikaisesti eri puolilla Hadoop klusterin. Oletuksena, MapReduce puitteissa saa tulotietoja Hadoop Distributed File System (HDFS).

Reduce vaihe käyttää tuloksia kartta tehtäviä syötteenä joukko rinnakkaisia ​​vähentää tehtävien. Reduce tehtävät vakiinnuttaa datan lopputulokset. Oletuksena, MapReduce puitteissa tallentaa tulokset HDFS.

Vaikka vähentää vaihe riippuu lähdön kartalta vaiheesta, kartta ja vähentää käsittely ei välttämättä peräkkäisiä. Tuo on, vähentää tehtäviä voidaan aloittaa heti kun kartta tehtävänä täydentää. Ei ole välttämätöntä, että kaikki kartan tehtäviä loppuun ennen kuin vähentää tehtävä voi alkaa.

MapReduce toimii avainarvopareista. käsitteellisesti, MapReduce työ vie joukon tulon avainarvopareja ja tuottaa joukon lähdön avainarvopareja johtamalla dataa kartan ja vähentää toimintoja. Kartan tehtävät välituotteen joukon avainarvopareja että vähentävät tehtävät käyttää syötteenä.

Avaimet kartalla tuotoksen paria ei tarvitse olla ainutlaatuinen. Välillä kartta jalostus ja vähentää jalostuksen, shuffle askel lajittelu kartta lähtöarvot samalla avaimella yhdeksi vähentää tulo (avain, arvo-lista) pari, jos "arvon’ on luettelo kaikista arvoista jakavat saman avaimen. Thus, tulo on vähentää tehtävä on oikeastaan ​​joukko (avain, arvo-lista) paria.

Vaikka jokaisen sarjan avainarvopareista on homogeeninen, avain-arvo-parit kussakin vaiheessa ei tarvitse olla samaa tyyppiä. For example, avainarvopari paria syötejoukon (KV1) voi olla (string, string) paria, kartan kanssa vaihe tuottaa (string, kokonaisluku) pareittain välitulokset (KV2), ja vähentää vaihe tuottaa (kokonaisluku, string) paria lopullisten tulosten (KV3).

Avaimet kartalla tuotoksen paria ei tarvitse olla ainutlaatuinen. Välillä kartta jalostus ja vähentää jalostuksen, shuffle askel lajittelu kartta lähtöarvot samalla avaimella yhdeksi vähentää tulo (avain, arvo-lista) pari, jos "arvon’ on luettelo kaikista arvoista jakavat saman avaimen. Thus, tulo on vähentää tehtävä on oikeastaan ​​joukko (avain, arvo-lista) paria.

Esimerkki osoittaa, MapReduce käsitteitä

Esimerkki osoittaa perus- MapReduce käsite laskemalla määrä esiintymisen jokaisen sanan joukko tekstitiedostoja.

MapReduce lähtötiedot on jaettu tulo halkeaa, ja halkeaa jaetaan edelleen input avainarvopareista. Tässä esimerkissä, lähtötiedot joukko on kahden asiakirjan, asiakirja1 ja document2. InputFormat alaluokka jakaa datajoukon yhdeksi split per asiakirja, yhteensä 2 halkeaa:

Note: MapReduce puitteet jakaa syöttödataryhmän paloiksi kutsutaan jakaa käyttämällä org.apache.hadoop.mapreduce.InputFormat alaluokan toimitetaan työn kokoonpano. Splits syntyvät paikallisen Job Client ja sisällytetty työn tiedot annettava Job Tracker. JobTracker luo kartan tehtävä kunkin jakaantuneen. Jokainen kartta tehtävän käyttää RecordReader antaman InputFormat alaluokka muuttaa jaettu tulo avainarvopareista.

A (rivinumero, text) avainarvoparin luodaan jokaista rivin tulon asiakirjassa. Kartan toiminto hylkää rivinumero ja tuottaa per-linja (sana, laskea) pari kutakin sanaa kirjoitusviivalle. Reduce vaihe tuottaa (sana, laskea) paria edustavat yhdistettyjä sana laskee kaikissa tulo asiakirjat. Koska tulodata näkyy kartassa-vähentää etenemistä varten esimerkiksi työn:

Ulostulo kartan faasi sisältää useita avainarvopareja samalla avaimella: The 'kaura’ ja "syö’ näppäimet näkyvät kahdesti. Muista, että MapReduce kehys yhdistetään kaikki arvot samalla näppäin ennen vähentää vaiheeseen, niin tulo vähentää on oikeastaan (avain, arvot) paria. siksi, koko etenemistä kartan ulostulo, kautta vähentää, lopputuloksiin on esitetty edellä.

MapReduce Job Life Cycle

Seuraavassa on elinkaari tyypillisen MapReduce työ ja roolit ensisijaisen actors.The koko elinkaaren ovat monimutkaisempia joten tässä keskitymme pääkomponentit.

Hadoop kokoonpano voidaan tehdä eri tavoin, mutta peruskokoonpano koostuu seuraavista.

  • Yhden master solmu käynnissä Job Tracker
  • Useita työntekijä solmut käynnissä Task Tracker

Seuraavassa elinkaaren komponentit MapReduce työpaikka.

  • Paikallinen Job client: Paikallinen työ Client valmistelee työ jättämisen ja ojentaa sen pois Job Tracker.
  • Job Tracker: Job Tracker aikatauluja työn ja jakaa kartan parissa Tehtävä Trackers rinnakkaiseen käsittelyyn.
  • tehtävä Tracker: Jokainen Tehtävä Tracker poikii Map Task. Työn Tracker vastaanottaa edistymistä tietoa tehtävän Trackers.

Kun kartta tulokset ovat saatavilla, Työn Tracker jakaa vähentää parissa Tehtävä Trackers rinnakkaiseen käsittelyyn.

Jokainen Tehtävä Tracker poikii pienennys- Tehtävä esittää teoksen. Työn Tracker vastaanottaa edistymistä tietoa tehtävän Trackers.

Kaikki kartta tehtäviä ei tarvitse suorittaa ennen vähentämiseksi tehtävät alkavat näkyä. Vähennä tehtäviä voidaan aloittaa heti, kun kartta tehtäviä alkaa täyttämällä. Thus, Kartan ja vähentää vaiheet ovat usein päällekkäisiä.

Toimivuus eri komponenttien MapReduce työpaikkojen

Job Client: Työn asiakas suorittaa seuraavat tehtävät

  • Validoi työ kokoonpano
  • Luo tulo halkeaa. Tämä on pohjimmiltaan halkaistu panos työn paloiksi
  • Kopiot työ resurssit (kokoonpano, työ JAR-tiedosto, input halkeaa) jaettuun sijainti, kuten HDFS hakemisto, jos se on saatavilla Job Tracker ja Task Trackers
  • Toimittaa työtehtävän Tracker

Job Tracker: Job Tracker suorittaa seuraavat tehtävät

  • Hakee tulo jakaa jaetusta paikasta, jossa työ Client sijoitti tiedot
  • Luo kartan tehtävä kunkin jakaantuneen
  • Asettaa jokainen kartta tehtävän Task Tracker (työntekijä solmu)

Kun karttaa tehtävä on valmis, Job Tracker tekee seuraavat tehtävät

  • Luo vähentää tehtäviä ylärajaan saakka käytössä työn kokoonpano.
  • Asettaa kunkin kartan tulos osio on vähentää tehtävän.
  • Yhdistää kunkin vähentää tehtävän Task Tracker.

tehtävä Tracker: Task Tracker hoitaa tehtävät yhden työntekijän solmun ja raportoi statuksen Job Tracker.

Tehtävä Tracker tekee seuraavat tehtävät, kun karttaa tai vähentää tehtävä on sille

  • Noutaa työ resurssit paikallisesti
  • Kutee lapsi JVM työntekijän solmu suorittaa karttaa tai vähentää tehtävän
  • Raportoi statuksen Job Tracker

Virheenkorjaus Kartta Vähennä

Hadoop on lokeja tärkeistä tapahtumista ohjelman suorituksen aikana. Oletuksena, nämä tallennetaan lokit / alihakemistoon Hadoop-version / hakemistoon, jossa suoritat Hadoop alkaen. Lokitiedostot on nimetty Hadoop-käyttäjätunnus-palvelu-hostname.log. Tuoreimmat tiedot on .log tiedostoon; vanhemmat lokit ovat kulutta liitteenä heille. Käyttäjänimi lokin tiedostonimi viittaa käyttäjätunnuksen, joiden Hadoop aloitettiin — tämä ei välttämättä samaa käyttäjätunnusta käytät ajaa ohjelmia. Palvelun nimi viittaa mitkä useita Hadoop ohjelmat kirjoittavat tukin; Opinnäytetyö voi olla jobtracker, namenode, datanode, secondarynamenode, tai tasktracker. Kaikki nämä ovat tärkeitä virheenkorjausta koko Hadoop asennus. Mutta yksittäisiä ohjelmia, tasktracker tukit on merkittävin. Poikkeukset heitetään ohjelmasi kirjataan tasktracker lokit.

Tukin hakemisto on myös alihakemisto nimeltä userlogs. Täällä on toinen alihakemisto jokaiselle tehtävän suorittamista. Jokainen tehtävä kirjaa sen stdout ja stderr kahteen tiedostoja tässä hakemistossa. Huomaa, että usean solmun Hadoop klusteri, nämä lokit eivät ole keskushermostoon yhdistettyjä — kannattaa tarkistaa kunkin TaskNode lokit / userlogs / hakemistosta niiden tuotos.

Debugging hajautetussa ympäristössä on monimutkainen ja vaatii kirjautumalla useita koneita pääsy lokitietojen. Jos mahdollista, ohjelmissa olisi testattu yksikkö ajamalla Hadoop paikallisesti. Oletuskokoonpanossa toteuttama Hadoop toimii “kertaalleen” tila, jossa koko MapReduce ohjelma ajetaan samassa tapauksessa Java kehotuksen JobClient.runJob(). Käyttämällä debuggeri kuten Eclipse, voit asettaa raja-arvot sisällä karttaa() tai vähentää() menetelmiä löydä vikoja.

On vähentää työn pakollisia?

Jotkut työt voidaan suorittaa kaikki työnsä aikana kartan vaiheessa. SO Työn voi olla kartta ainoa tehtävä. Jos haluat lopettaa työn jälkeen karttaa valmis, asettaa määrä vähentää tehtäviä nollaan.

Johtopäätös

Tämä moduuli kuvaili MapReduce toteutus alusta ytimessä Hadoop järjestelmän. Käyttämällä MapReduce, korkea yhdenmukaisuutta voidaan saavuttaa sovellukset. MapReduce kehys tarjoaa korkean vikasietoisuuden varten toimivista sovelluksista rajoittamalla viestintää, joka voi esiintyä solmujen.

============================================= ============================================== Osta parhaat tekniset kirjat Amazonista,en,sähköasentaja CT -kastaja,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share