Explicați esența mapreduce - pe degete

Timp de o săptămână întregi, chesăm lent NoSQL / NewSQL. dar întrebările nu se diminuează (după cum mă așteptam), ci doar cresc.

S-a terminat a doua zi cu elementele de bază ale comenzilor memcached. acum vreau să încerc cât se poate de simplu pentru mine, să răspund la întrebarea frecventă și importantă - ce este MapReduce.







Ce este MapReduce?

Aceasta este o abordare tipică, un algoritm, un bine sau un model, ca cineva care o numește, procesarea paralelă a unor cantități mari de date brute, de exemplu, rezultatele crawlerelor sau jurnalelor de cereri Web.

În general, conform statisticilor, până la 80% din sarcinile pot să facă în mod liber și foarte profitabil Mappereduce și MapReduce conduce acum în NoSQL.

Există diferite implementări ale MapReduce. O implementare destul de bine cunoscută și brevetată a acestui algoritm și abordare este în Google. Sau ca un exemplu de MySpace Qizmt - MySpace Open Source Mapreduce Framework. folosit și în Hadoop. MongoDb și multe alte exemple pot fi citate. Mai multe detalii pot fi găsite în articol (PDF): MapReduce: Procesare simplificată a datelor pe grupuri mari.

Noțiuni de bază despre elementele de bază

Deci, o implementare tipică a acestui algoritm primește trei argumente de intrare: colecția originală, funcția Map, funcția Reduce și returnează o nouă colecție de date după procesare.

Algoritmul constă în mai mulți pași. Ca prim pas, funcția Map este efectuată pe fiecare element al colecției originale. Harta va reveni la zero sau va crea instanțe de obiecte cheie / valoare.

Asta este, putem spune că este responsabilitatea funcției Map să convertească elementele colecției originale la zero sau mai multe instanțe ale obiectelor cheie / valoare. Acest lucru este prezentat mai jos în imagine:

Explicați esența mapreduce - pe degete

Apoi, algoritmul sortează toate perechile cheie / valoare și creează noi instanțe de obiecte, unde toate valorile vor fi grupate după cheie.

Explicați esența mapreduce - pe degete






Ultimul pas este funcția Reduce - pentru fiecare instanță cheie / valoare grupată a obiectului

În cele din urmă, funcția Reduce returnează o nouă instanță a obiectului care va fi inclus în colecția care rezultă.

Explicați esența mapreduce - pe degete

EXEMPLUL implementation-

De exemplu, implementăm o implementare foarte simplă și intuitivă a acestui algoritm în C #. Exemplul meu numără numărul de vocale rând pe rând.

În exemplu, este creată o funcție generalizată MapReduce. - ca principala în acest algoritm, - care numeste pur și simplu funcțiile specializate Map și Reduce. paralelizând punerea lor în aplicare. De fapt, funcțiile Map și Reduce sunt ele însele. a cărui implementare este deja specifică problemei pe care încercăm să o rezolvăm (în fiecare caz), iar în acest caz, este "calculul numărului de vocale într-un set de linii".

Chiar și tu stupid. Lucrez ca tester, înțeleg în sfârșit ce este Map / Reduce și cum funcționează.

Iar cel care se plânge de cuvinte străine, doar un pic de lucru pentru o companie cu documentația limba engleză și a scris codul un pic. Punerea în aplicare, de verificare, Bugs, caracteristici, Deskripshion, Investigirovat, raliu, unitate, Handley, MAPP, codificați, etc. Toate aceste cuvinte fac doar viața mai ușoară, dar dacă nu știi valoarea lor, atunci este problema ta, să învețe cum să lucreze și nu se văita!

Diavolii nu sunt ruși, puteți să vă faceți griji despre fene în compania dvs. îngustă și să publicați articole în limba rusă obișnuită. Pentru a simplifica viața, în special inteligent, puteți pur și simplu moo)

Este mai puțin de înțeles modul în care funcționează, dar nu rănește să spunem cum este atât de bună această abordare și ce beneficii (în comparație cu alternativele) le aduce.

"Am venit la tine din viitor cu o cerere de a vă opri activitățile"

10 echipe Netsh pe care fiecare administrator trebuie să le cunoască

  • vad "Nu înțeleg de ce acest lucru este făcut din linia de comandă atunci când de la gui se face totul în două clicuri și totul este clar vizibil. Dar pentru un articol de mulțumire, se întâmplă când trebuie să restabiliți.

Sunset Runet cu mâna

  • Kharn "Totul este clar, interesant. O întrebare, ce fel de "bolșevici" ai? Ați fost deja interzis în Google și nu înțelegeți diferența dintre bolșevicii cu regimul sovietic și actualii oligarhi.

Explicați esența MapReduce "pe degete"

  • Kostya »Mai mult sau mai puțin clar cum funcționează, dar nu strică să-i spun mai mult decât această abordare este atât de bine, și ce beneficii (în comparație cu alternativele) îl aduce.

Runet este sortită. Partea 2

  • Anton S. "Desigur, îmi cer scuze pentru obsesie, dar am crezut că am răspuns la întrebări aici.








Trimiteți-le prietenilor: