Video: MapReduce Flow Chart 2025
MapReduce-sovellus käsittelee syötetyt eritelmän tiedot rekisteriä perusteella ja että jokainen tietue ymmärretään MapReducen ollessa avain / arvo pari. Sen jälkeen, kun tulo-jakaumat on laskettu, kartoitustehtävät voivat alkaa käsitellä niitä - eli juuri sen jälkeen, kun resurssienhallinnan aikataulutusyksikkö määrittää niiden käsittelyresurssit. (Hadoop 1: ssä JobTracker määrittää kartoitustehtävät tiettyihin käsittelyn aikaväleihin.)
Mapper-tehtävä itse käsittelee panoksensa jakamalla yhden tietueen kerrallaan - kuvassa tämä yksinäinen tietue edustaa avain / arvo-pari. Lennon tietojen tapauksessa, kun tulo-erottelut lasketaan (tekstitiedostojen oletustulostusmenetelmällä), oletus on, että jokainen tekstitiedoston rivi on yksi tietue.
Jokaisesta tietueesta rivin teksti edustaa itse arvoa, ja kunkin rivin tavun siirto alusta alkaen katsotaan avaimeksi.
Saatat ihmetellä, miksi rivinumeroa ei käytetä tavujen offset-tilan sijaan. Kun katsot, että erittäin suuri tekstitiedosto on jaettu useisiin yksittäisiin datalohkoihin ja käsitellään niin monta erottelua, rivi numero on vaarallinen käsite.
Kunkin jakamisen rivien lukumäärä vaihtelee, joten ei ole mahdollista laskea käsittelyn edeltävien rivien lukumäärää. Byte offset -toiminnon avulla voit kuitenkin olla tarkka, koska jokaisella lohkolla on kiinteä määrä tavua.
Kun kartoitusprosessi käsittelee jokaisen tietueen, se luo uuden avain / arvo -parin: Täällä oleva avain ja arvo voivat olla täysin erilaiset kuin tulopari. Mapper-tehtävän tulos on kaikkien näiden avain / arvoparien koko kokoelma.
Ennen jokaisen kartoitustyön lopullisen tulostustiedoston kirjoitustaulukko, lähtö jaetaan avaimen perusteella ja lajitellaan. Tämä osiointi tarkoittaa, että kaikki avaimen arvot ryhmitellään yhteen.
Jos kyseessä on melko perusnäytehakemus, on vain yksi vähennysventtiili, joten kaikki kartoitustehtävän tulos kirjoitetaan yhteen tiedostoon. Mutta tapauksissa, joissa on useita pienennyksiä, jokainen kartoitustehtävä voi tuottaa useita tulostustiedostoja.
Näiden ulostustiedostojen erittely perustuu osiointiavaimeen. Jos esimerkiksi kartoitustehtäviin on tuotu vain kolme erillistä jako-avainta, ja olet määrittänyt kolme vähennystä työhön, tulee olemaan kolme kartoitustulostustiedostoa. Tässä esimerkissä, jos jokin tietty kartoitusprosessi käsittelee syötteen jakamista ja tuottaa tuotoksen kahdella kolmesta avaimesta, tulee olemaan vain kaksi tulostetiedostoa.
Pakkaa karttatiedostojen tulostustiedostot aina. Suurin hyöty tästä on suorituskyvyn parantumisessa, koska pienempien tulostustiedostojen kirjoittaminen minimoi väistämättömät kustannukset, jotka siirtävät karttatiedon solmujen kohdalle, missä vähennysventtiilit ovat käynnissä.
Oletusarvoinen osiointi on useimmissa tilanteissa enemmän kuin riittävä, mutta joskus voit halutessasi muokata, miten tiedot jaetaan osioiksi ennen kuin vähennyslasit käsittelevät sitä. Voit esimerkiksi halutessasi tuloksesi tiedot lajitella avaimen ja niiden arvojen mukaan - tunnetaan toissijaisena lajitteluna.
Tätä varten voit ohittaa oletuspartitionerin ja toteuttaa oman. Tämä prosessi vaatii kuitenkin jonkin verran huolta, koska haluat varmistaa, että kunkin osion tietueiden määrä on yhtenäinen. (Jos alennusvaihde joutuu käsittelemään paljon enemmän tietoa kuin muut -laskijat, sinun odota MapReduce työn päättymistä, kun yksittäinen ylityöllistettyjä alennusvaihde on slogging kautta suhteettoman suuren tietokokonaisuutta.)
käyttäminen tasakokoisia väli tiedostojen voi paremmin hyödyntää MapReducen käsittelyssä käytettävää rinnakkaisuutta.