„MapReduce“ yra esminė programavimo koncepcija, kurią turite išmokti, kad taptumėte profesionaliu duomenų inžinieriumi. Ji teikia sprendimus paskirstytoms didelių duomenų failų valdymo sistemoms. Taigi, suprasdami teorinį MapReduce pagrindą, galėsite lengvai išmokti pačią techniką.
Bet kas yra „MapReduce“ ir kaip ji veikia paskirstytose failų sistemose? Sužinosite šiame įraše.
Kas yra MapReduce?
„MapReduce“ yra duomenų inžinerijos modelis, taikomas programoms ar programoms, kurios apdoroja didelių duomenų logiką lygiagrečiose serverių arba mazgų grupėse. Jis paskirsto apdorojimo logiką keliuose duomenų mazguose ir sujungia rezultatus į kliento serverį.
„MapReduce“ užtikrina, kad apdorojimas būtų greitas, efektyvus ir patikimas, nepaisant duomenų dydžio.
„Hadoop“ failų sistema (HDFS), „Google“ failų sistema (GFS), „Apache Kafka“, „GlusterFS“ ir kt. yra paskirstytų didelių duomenų failų sistemų, kuriose naudojamas „MapReduce“ algoritmas, pavyzdžiai.
Kas yra paskirstyta failų sistema?
Paskirstyta failų sistema (DFS) – tai duomenų saugojimo metodas, apimantis didelių duomenų failų padalijimą į mažesnius gabalus ir paskirstymą keliuose sistemos serveriuose. Tai leidžia klientams iš įvairių šaltinių rašyti ir skaityti duomenis, dalytis ir vykdyti programuojamą duomenų logiką – tiesiai iš bet kurios vietos.
Paskirstyta failų sistema paprastai susideda iš pirminio serverio (taip pat vadinamo NameNode Hadoop), lygiagrečių grupių ir kelių mazgų arba serverių, kuriuose yra atkartotų duomenų gabalų, visa tai yra duomenyse centras. Tačiau kiekviename paskirstytos failų sistemos klasteryje yra nuo šimtų iki tūkstančių šių mazgų.
Pagrindinis serveris automatiškai aptinka pokyčius grupėse. Taigi jis gali priskirti vaidmenis kiekvienam mazgui.
Kai pagrindinis serveris gauna duomenų failą, jis siunčia jį į DFS grupes. Šios grupės suskirsto duomenis ir paskirsto juos į kiekvieną mazgą. Tada kiekvienas mazgas pakartoja duomenis į vadinamuosius duomenų blokus, kad sudarytų grandinę. Šiuo metu kiekvienas mazgas tampa gabalų serveriu.
Susijęs:Kas yra duomenų centrai ir kodėl jie svarbūs?
Be prieigos prie duomenų valdymo, pagrindinis serveris kiekviename faile turi metaduomenų anotaciją. Tokiu būdu jis žino, kuris mazgas tvarko kurį failą kiekvienoje klasteryje.
Kaip „MapReduce“ veikia paskirstytose failų sistemose?
Kaip minėta anksčiau, dideli duomenys pasiekiami keliuose DFS serveriuose. Vienas iš būdų, kaip atlikti programuojamą šių duomenų failų logiką, yra juos sujungti į vieną. Tada galite įtraukti juos į vieną serverį, kuris dabar tvarko logiką.
Nors tai yra įprastas duomenų užklausų būdas, problema ta, kad duomenys vėl tampa visuma viename serveryje. Taigi vienas serveris vis tiek turės valdyti kelių petabaitų duomenų logiką vienu metu. Deja, tai buvo problema, kurią sistema iš pradžių ketino išspręsti. Taigi tai nėra geriausia praktika.
Susijęs:Kaip vienu metu pateikti užklausą keliose duomenų bazių lentelėse naudojant SQL prisijungimus
Be to, toks sujungimas į vieną serverį kelia keletą našumo pavojų. Tai gali būti nuo serverio gedimo, prasto skaičiavimo efektyvumo, didelio delsos, didelio atminties suvartojimo ir pažeidžiamumų iki kitų.
Tačiau kitas būdas paleisti programuojamą logiką yra palikti duomenis dalimis kiekviename paskirstytame serveryje. Tada įterpkite logikos funkciją į kiekvieną serverį. Tai reiškia, kad kiekvienas klasteryje esantis gabalų serveris dabar tvarko savo skaičiavimus. Naudojant šį metodą, nereikia kaupti ar traukti duomenų į vieną serverį.
Kad paskirstytoje duomenų failų sistemoje yra MapReduce koncepcija. Tai užtikrina, kad vienam serveriui nereikės imti duomenų iš šaltinio. Vietoj to, jis paskirsto apdorojimo funkciją (MapReduce) į kelis atskirus mazgus klasteriai, todėl kiekvienas kiekvienos grupės mazgas tvarko logiką atskirai, neperkraunant nė vieno serveris.
Todėl keli serveriai vienu metu tvarko duomenų bitų logiką. Toks darbo paskirstymas tarp serverių užtikrina optimalų našumą ir didesnį saugumą, be kitų privalumų.
Kaip MapReduce rezultatas apdorojamas DFS?
Štai kaip visas „MapReduce“ apdorojimas veikia DFS:
- Pirminis serveris iš kliento gauna didelių duomenų užklausą (funkcija MapReduce).
- Tada jis siunčia jį į kiekvieną klasterį, kad paskirstytų jį kiekviename mazge.
- Kiekvienas mazgas apdoroja funkciją MapReduce ir kaupia jos rezultatą.
- Kitas serveris sulygina kiekvieno mazgo rezultatus ir siunčia juos atgal į pirminį serverį.
- Tada pirminis serveris siunčia rezultatą kaip atsakymą klientui.
Taigi vienintelis pirminio serverio darbas yra nusiųsti klientui lengvai apskaičiuojamą rezultatą, klausytis pakeitimų ir valdyti prieigą prie duomenų. Jis neatlieka jokių skaičiavimų. Štai kodėl dauguma debesų kompiuterijos programų yra įspūdingai greitos, nepaisant apdorojamų duomenų kiekio.
Kas tiksliai yra žemėlapis ir mažinimas programoje „MapReduce“?
„MapReduce“ naudoja dvi programavimo logikas, kad apdorotų didelius duomenis paskirstytoje failų valdymo sistemoje (DFS). Tai žemėlapis ir sumažinimo funkcija.
The žemėlapį funkcija apdoroja kiekvieną duomenų mazgą kiekviename paskirstytos failų sistemos klasteryje. The sumažinti tada funkcija apibendrina kiekvieno gabalo serverio grąžintus rezultatus ir perduoda juos kitam serveriui DFS, kad būtų galima apibendrinti rezultatus. Gaunantis serveris siunčia šį skaičiavimą pirminiam serveriui, kuris paskelbia grąžintą reikšmę kliento serveriui.
Kas atsitinka, kai sugenda gabalo serveris?
Paskirstytoje failų sistemoje (DFS) esantys serveriai kartais gali prastovos. Galbūt manote, kad tai sugadins visą sistemą, bet taip nėra.
Kompiuterijoje yra sistema, kuri apsaugo nuo tokio gresiančio gedimo. Tai vadinama gedimų tolerancija.
Susijęs:Kas yra debesų kompiuterija? Kaip veikia debesų technologija?
Taigi, net kai serveris išsijungia apdorojant duomenis, atsparumas gedimams užtikrina, kad pagrindinis serveris jį aptiktų nedelsiant. Kadangi visuose mazguose yra duomenų dalių kopija, pagrindinis serveris akimirksniu perkelia apdorojimo užduotį į kitą serverį. Tokiu būdu serverio prastovos DFS neturi įtakos duomenų apdorojimui.
„MapReduce“ palengvina didelių duomenų apdorojimą
„MapReduce“ yra esminis modelis, palengvinantis skaičiavimą paskirstytose failų sistemose. Kadangi tai leidžia keliems mazgams atlikti skaičiavimus vienu metu, tai greitas metodas, kurį naudoja įvairūs technologijų milžinai, kad išspręstų daugelį problemų, susijusių su didelių duomenų analize.
„Google“, „Amazon“, IBM, be kita ko, yra įmonių, kurios naudojasi šia koncepcija, pavyzdžiai. Pavyzdžiui, „Google“ taiko „MapReduce“ koncepciją, kad pateiktų užklausos rezultatus „Google“ paieškos metu.
Dideli duomenys veikia daugelyje pramonės šakų ir turi įtakos visų mūsų gyvenimui. Bet ar tai pavojingiau ar naudinga?
Skaitykite toliau
- Programavimas
- Programavimas
- Dideli duomenys
- Duomenų analizė

Idowu aistringai vertina viską, kas yra išmanioji technologija ir produktyvumas. Laisvalaikiu jis žaidžia koduodamas ir, kai jam nuobodu, pereina prie šachmatų lentos, tačiau taip pat mėgsta retkarčiais atitrūkti nuo rutinos. Jo aistra parodyti žmonėms kelią apie šiuolaikines technologijas skatina jį rašyti daugiau.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Spauskite čia norėdami užsiprenumeruoti