Kas yra „MapReduce“ sistemoje „Hadoop“? Architektūra Pavyzdys

Kas yra „MapReduce“ sistemoje „Hadoop“?

„MapReduce“ yra programinės įrangos sistema ir programavimo modelis, naudojamas milžiniškam duomenų kiekiui apdoroti. „MapReduce“ programos darbas vyksta dviem etapais, būtent „Map“ ir „Reduce“. Žemėlapio užduotys yra susijusios su duomenų padalijimu ir susiejimu, o „Reduce task shuffle“ ir „data“.

„Hadoop“ gali paleisti „MapReduce“ programas, parašytas įvairiomis kalbomis: „Java“, „Ruby“, „Python“ ir „C ++“. „Map Reduce“ programos debesų kompiuterijoje yra lygiagrečios, todėl yra labai naudingos atliekant didelio masto duomenų analizę naudojant kelias grupes esančias mašinas.

Kiekvienos fazės įvestis yra pagrindinės vertės poros. Be to, kiekvienas programuotojas turi nurodyti dvi funkcijas: žemėlapio funkciją ir redukcijos funkciją .

Šioje pradedančiųjų „Hadoop MapReduce“ pamokoje sužinosite-

  • Kas yra „MapReduce“ sistemoje „Hadoop“?
  • „MapReduce Architecture in Big Data“ išsamiai paaiškinta
  • „MapReduce Architecture“ išsamiai paaiškinta
  • Kaip „MapReduce“ organizuoja darbą?

„MapReduce Architecture in Big Data“ išsamiai paaiškinta

Visas procesas eina per keturias vykdymo fazes, būtent skaidymą, kartografavimą, maišymą ir redukciją.

Dabar šioje „MapReduce“ pamokoje supraskime su „MapReduce“ pavyzdžiu-

Apsvarstykite, ar turite „MapReduce“ didžiųjų duomenų programoje įvesties duomenis

Welcome to Hadoop ClassHadoop is goodHadoop is bad

„MapReduce Architecture“

Galutinis „MapReduce“ užduoties rezultatas yra

blogai 1
Klasė 1
Gerai 1
Hadoopas 3
yra 2
į 1
Sveiki 1

Duomenys pereina šiuos „MapReduce“ etapus „Big Data“

Įvesties padalijimai:

„MapReduce“ užduotis į „Big Data“ užduotį padalijama į fiksuoto dydžio dalis, vadinamus įvesties dalimis. Įvesties padalijimas yra įvesties dalis, kurią sunaudoja vienas žemėlapis

Žemėlapis

Tai yra pirmasis žemėlapių mažinimo programos vykdymo etapas. Šiame etape kiekvieno padalijimo duomenys perduodami atvaizdavimo funkcijai, kad gautų išvesties reikšmes. Mūsų pavyzdyje kartografavimo fazės užduotis yra suskaičiuoti kiekvieno žodžio įvykius iš įvesties padalijimų (daugiau informacijos apie įvesties padalijimą pateikiama žemiau) ir paruošti sąrašą <žodis, dažnis>

Maišymas

Ši fazė sunaudoja kartografavimo fazės išvestį. Jo užduotis yra konsoliduoti atitinkamus įrašus iš kartografavimo fazės išvesties. Mūsų pavyzdyje tie patys žodžiai sutelkiami kartu su atitinkamu dažniu.

Mažinimas

Šiame etape sumaišomos iš maišymo fazės išvesties vertės. Ši fazė sujungia maišymo fazės vertes ir pateikia vieną išvesties vertę. Trumpai tariant, šiame etape apibendrinamas visas duomenų rinkinys.

Mūsų pavyzdyje ši fazė sujungia reikšmes iš maišymo fazės, ty apskaičiuoja bendrą kiekvieno žodžio atvejį.

„MapReduce Architecture“ išsamiai paaiškinta

  • Kiekvienam dalijimui sukuriama viena žemėlapio užduotis, kuri tada atlieka kiekvieno padalijimo įrašo žemėlapio funkciją.
  • Visada naudinga turėti kelis padalijimus, nes laikas, reikalingas padalijimui apdoroti, yra nedidelis, palyginti su laiku, kurio reikia viso įvesties apdorojimui. Kai skilimai yra mažesni, apdorojimą geriau įkelti subalansuotai, nes mes dalijamės lygiagrečiai.
  • Tačiau taip pat nepageidautina, kad plyšiai būtų per maži. Kai padalijimai yra per maži, perteklių valdymas ir užduočių kūrimo žemėlapis pradeda dominuoti per visą darbo vykdymo laiką.
  • Daugeliui darbų geriau padalyti dydį, lygų HDFS bloko dydžiui (kuris pagal nutylėjimą yra 64 MB).
  • Vykdant žemėlapio užduotis, įrašoma išvestis į vietinį diską atitinkamame mazge, o ne į HDFS.
  • Priežastis pasirinkti vietinį diską, o ne HDFS yra vengti replikacijos, kuri vyksta HDFS parduotuvės veikimo atveju.
  • Žemėlapio išvestis yra tarpinė išvestis, kurią apdoroja redukcijos užduotys, kad gautų galutinį rezultatą.
  • Užbaigus darbą, žemėlapio išvestis gali būti išmesta. Taigi, saugojimas HDFS su replikacija tampa per didelis.
  • Jei mazgas sugenda, kol žemėlapio išvestį sunaudoja redukcijos užduotis, Hadoopas pakartoja žemėlapio užduotį kitame mazge ir vėl sukuria žemėlapio išvestį.
  • „Reduce task“ neveikia pagal duomenų lokalumo sąvoką. Kiekvienos žemėlapio užduoties išvestis perduodama užduočiai redukuoti. Žemėlapio išvestis perkeliama į mašiną, kur vykdoma redukcijos užduotis.
  • Šioje mašinoje išvestis sujungiama ir perduodama vartotojo apibrėžtai redukcijos funkcijai.
  • Skirtingai nuo žemėlapio išvesties, sumažinta išvestis yra saugoma HDFS (pirmoji kopija saugoma vietiniame mazge, o kitos kopijos - ne racko mazguose). Taigi, rašant sumažinti išvestį

Kaip „MapReduce“ organizuoja darbą?

Dabar šioje „MapReduce“ mokymo programoje sužinosime, kaip veikia „MapReduce“

Hadoopas padalija darbą į užduotis. Yra dviejų tipų užduotys:

  1. Žemėlapio užduotys (padalijimai ir atvaizdavimas)
  2. Sumažinti užduotis (maišymas, mažinimas)

kaip paminėta aukščiau.

Visą vykdymo procesą („Map“ ir „Reduce“ užduočių vykdymą) kontroliuoja dviejų tipų subjektai, vadinami a

  1. „Jobtracker“ : elgiasi kaip meistras (atsakingas už pilną pateikto darbo vykdymą)
  2. Keli užduočių sekėjai : veikia kaip vergai, kiekvienas iš jų atlieka darbą

Kiekvienam darbui, pateiktam vykdyti sistemoje, yra vienas „ Jobtracker“ , gyvenantis Namenode, ir yra keli užduočių sekėjai, kurie gyvena Datanode .

Kaip veikia „Hadoop MapReduce“
  • Darbas yra padalintas į kelias užduotis, kurios tada vykdomos keliuose duomenų mazguose grupėje.
  • Užduočių sekimo funkcija yra koordinuoti veiklą, planuojant užduotis vykdyti skirtinguose duomenų mazguose.
  • Tuomet atskirų užduočių vykdymą turi prižiūrėti užduočių sekimo priemonė, esanti kiekviename duomenų mazge, vykdančiame darbo dalį.
  • Užduočių stebėtojo pareiga yra išsiųsti pažangos ataskaitą darbo sekėjui.
  • Be to, užduočių stebėjimo priemonė periodiškai siunčia „širdies plakimo“ signalą „Jobtracker“ pranešdama jam apie dabartinę sistemos būklę.
  • Taigi darbo stebėjimo priemonė stebi bendrą kiekvieno darbo pažangą. Nepavykus atlikti užduoties, darbo stebėjimo priemonė gali ją perkelti į kitą užduočių stebėjimo priemonę.

Įdomios straipsniai...