Geek Dirt

huhti 24, 2021

in the first post of Hadoop series Introduction of Hadoop and running a map-reduce program , I explained the basics of Map-Reduce. Tässä viestissä selitän sen eri komponentteja, kuten osiointi, Shuffle, Combiner, yhdistäminen, Lajittelu ensin ja sitten miten se toimii.

osiointi:

jos reduktioiden lukumäärä on 2 ja hash-funktio on:

#This function would return the data passes in itfunction hash(data){#this is just for example purposereturn data;}

sitten avaimelle 1:

partition number = hash(1) % 2 = 1;

avaimelle 2:

partition number = hash(2) % 2 = 0;

avain 4:

partition number = hash(4) % 2 = 0;

tämä tarkoittaa, että avaimen 1 ulostulo menisi osioon_1 ja avainten 2 ja 4 ulostulo osioon_0.

Shuffle:

karttatehtävän lopullisessa ulostulossa voi olla useita osioita ja näiden osioiden tulisi mennä eri redusoiduille tehtäville. Sekoittaminen on pohjimmiltaan kartan lähtöosioiden siirtämistä vastaaviin vähennystehtäviin. Map task notified application master about completion of map task and application master notifices responsible reducer to copy the map output into reduce machine.

Combiner:

Lajittelu:

se on vain tietojen lajittelua avainten perusteella.

yhdistäminen:

tämä tapahtuu reduktiopuolella. Reducer voi saada dataa useista karttatehtävistä ja yhdistelemällä se yhdistää eri karttatehtävien tiedot yhdeksi yksiköksi säilyttäen lajittelujärjestyksen.

kartta-Pienennä yksityiskohtaisesti:

kartta:

sillä on muistissa circular buffer ja se kirjoittaa suoraan puskuriin. Kun puskuri saavuttaa kynnysarvon (oletusarvo 80%), se alkaa kirjoittaa arvoon spill file erillisen background thread. Karttatehtävä voi silti kirjoittaa tulosteensa puskuriin taustalangan ollessa käynnissä. Ennen kuin kirjoitat läikkymistiedostoon, avainarvoparit jaetaan ja lajitellaan. Jos combiner on siellä, se saa myös ajaa, joka vähentää lähtö kokoa.

tehtävän jälkeen kaikki läikkymistiedostot lajitellaan uudelleen ja luodaan yksi tiedosto, joka osioidaan ja lajitellaan. Tarkoittaa, että tällä lopullisella tulostiedostolla on useita osioita. Kun karttatehtävä on suoritettu solmulle, sen ulostulo lähetetään reduktioon. Siksi näet vähentää tehtävän yli 0%, kun Kartta on alle <100%.

kun on vain karttatehtävä, ei sekoiteta lainkaan, mikä tarkoittaa, että kartoittajat kirjoittavat lopullisen lähdön suoraan HDFS: ään.

vähennä:

saatuaan tiedot karttatehtävästä se yhdistää tiedot yhdeksi yksiköksi merge phaseaikana. Sen sijaan, että se yhdistäisi kaikki tiedostot suoraan yhdeksi , se käyttää käsitettä merge factor, jonka tarkoituksena on minimoida levylle kirjoitettavan tiedon määrä. Sitten aikana vähentää vaiheessa, vähentää toiminto kutsutaan kunkin avaimen lajiteltu ulostulo. Tämän vaiheen ulostulo kirjoitetaan suoraan lähtötiedostojärjestelmään, tyypillisesti HDFS: ään.

hyödyllisiä linkkejä:

langan Johdatus ja työstö

Vastaa

Sähköpostiosoitettasi ei julkaista.