Tehnologia computerelor google mapreduce împărțirea și cucerirea

Logistica este un lucru minunat. Merită să vă uitați în depozitul unui hipermarket - și devine clar: fără o comandă atentă a bunurilor în el și vorbirea nu poate merge în calea vreunui comerț eficient. Între timp, casele de tranzacționare uriașe își deschid ușile la zeci de mii de consumatori și caută cu ușurință bunurile necesare în interiorul depozitelor fără fund.







Cu informații, situația este la fel. Pentru a salva aceasta este doar una dintre sarcinile. Informațiile necesită prelucrare. Indiferent cât de eficient este depozitul de date, acesta nu va ajuta la procesarea acestuia.

În Google compania cu această problemă nu sunt familiarizați, nu de auzite. Bots ei hardworking non-stop pentru a colecta conținutul internetului din ce în ce mai proliferarea și transferul-l la cluster-ul Google, în cazul în care mingea a guvernat sistemul de fișiere distribuit GFS. Se distribuie petabytes de date pe sute de mii de servere bucată mai bine decât expert condimentată în logistică, în acest proces, oferindu-le de stocare sigure, care nu dăunează nici defecțiuni posibile sau defecțiuni ale echipamentului.

Dar motorul de căutare nu este atât de mult un magazin de conținut ca un sistem pentru găsirea rapidă a părților sale prin cuvinte cheie introduse de utilizator în bara de căutare.

Cum știu ce pagini web au aceste cuvinte cheie? Care resursă conține un singur cuvânt cheie și care dintre ele este mai multe? Nu există nici o modalitate de a face fără o bază bună a indicilor.

Formați o astfel de bază de date cu privire la o serie de date pe baza de petabyte - sarcina nu este banală. De fapt, trebuie să parcurgeți alternativ fiecare document și să determinați dacă acesta conține cuvântul necesar. Orice s-ar putea spune, procesul este liniar.

Dar nu pentru o companie cu un grup de jumătate de milion de computere.

Cu el se poate folosi cu ușurință bine-cunoscut paradigma informatica de „divide et impera“, prin împărțirea datelor stabilite în părți și fiecare dintre ele oferind un server de index separat. Ei bine, după efectuarea indexării în părți, rămâne să colectăm soluția găsită împreună.

Pentru acest tip de lucru Google a dezvoltat tehnologia MapReduce - un instrument de paralelizare eficientă a sarcinilor, care poate fi rezolvat liniar în condiții obișnuite.

Inspirație din trecut

Adu-ți aminte, ca și copil, la lecțiile de vorbire nativă, ni sa dat o sarcină de atenție? Găsiți, de exemplu, pe pagina de la "Goldfish" toate literele "O" și numărați numărul acestora. Elevii scrupuloși, în linie, au căutat "O", i-au subliniat și apoi au rezumat subliniatul.

Acum, imaginați-vă cum să trimită rapid cazul, dacă am primit pe linia de fiecare elev din clasă, care, numărarea numărului de scrisori îl vor informa în prealabil desemnat „maestru vraja.“ Dacă nu intri în detalii, tehnologia MapReduce funcționează în acest fel.

Desigur, în cursul dezvoltării MapReduce, angajații Google, Jeffrey Dean și Sanjay Ghemawat, au fost inspirați nu de sarcinile școlare. Aveau o altă minunată sursă de entuziasm. Înapoi la sfârșitul anilor cincizeci ai secolului trecut la datele furnizate de o listă liniară, a fost proiectat limbaj de programare Lisp - strămoș al întregii familii de limbi, folosind paradigma programării funcționale.

Lisp și alte limbi funcționale suportă un model interesant de programare numit Map / Reduce. Din numele său rezultă că folosește două proceduri - hartă, care aplică funcția dorită fiecărui element din listă și reduce, combinând rezultatele lucrării de hartă.

Operațiile efectuate de hartă și reducerea funcțiilor. În cel mai simplu caz, aceasta este agregarea datelor prin valoarea "cheie".

Pentru a indexa conținutul web stocat în clusterul Google, dezvoltatorii MapReduce au adaptat modelul general al limbajelor de programare funcțională la obiectivele lor.

Ei au sugerat că întreaga informație MapReduce prelucrate poate fi reprezentat ca o listă de perechi, fiecare dintre care constă dintr-o cheie și o valoare. În gama de conținut web-cheie, desigur, acesta este cuvântul de căutare și semnificația sa - numărul 1, confirmând prezența cuvântului.







În cea mai simplă versiune a modelului de programare Google MapReduce, procedura de hartă primește o listă de cuvinte conținute în documentele procesate. Se transformă fiecare element într-o pereche, un element din care este un cuvânt, iar celălalt este un număr 1.

Apoi, pentru a se lua o lista de procedura de reducere, care include o listă de elemente cu aceeași cheie (de exemplu cuvinte) și adaugă edinichki. Ca rezultat, rezultatul este o listă a tuturor cuvintelor cheie cu numărul de referințe din anumite documente. Și aceasta este baza indexului motorului de căutare.

Un bun exemplu al muncii hărții și reducerea funcțiilor.

După cum puteți vedea, nu au inventat noi creatori MapReduce. Meritul lor real este în celălalt. De fapt, MapReduce nu este doar un model software, prin care puteți rezolva sarcinile de sortare și grupare a datelor. Aceasta este o arhitectura intreaga care ofera:

  • paralelizarea automată a datelor dintr-o gamă imensă de noduri multiple de procesare care efectuează proceduri Map / Reduce;
  • balansarea efectivă a sarcinii acestor noduri de calcul, împiedicându-le să circule în gol sau să fie supraîncărcate;
  • tehnologia de lucru tolerantă la erori, oferind faptul că, atunci când execută o sarcină generală, o parte din nodurile de procesare poate eșua sau, dintr-un alt motiv, nu mai procesează datele.

Astfel, Google MapReduce, pe de o parte, acesta oferă utilizatorului cu procedurile de prelucrare a datelor, iar pe de altă parte - o face transparent pentru paralelizare de prelucrare pe cluster-ul Google puternic.

Cum au făcut-o?

Calcul paralel, GFS și același cluster

Cea mai strălucită gîndire la proiectarea MapReduce a fost ideea de a plasa module de implementare a hărților și de a reduce procedurile pe aceleași servere Chunk - baza sistemului de fișiere GFS. Această abordare aproximează modulele GPS stocate în GPS la funcțiile de procesare. Salvarea traficului de rețea este evidentă.

Mai mult - mai mult. La fel ca GFS, tehnologia MapReduce este construită pe principiul "principalilor - subordonaților". „Cap» MapReduce - Procedura de master - controlează o multitudine de servere împrăștiate bucată «muncitori» (muncitori), dintre care unele sunt responsabile pentru harta de funcții (acestea sunt numite cartografi, sau «Mapper»), iar cealaltă, respectiv, pentru a reduce (reductoare - "redyusery").

Ca rezultat, apare o nouă matrice fragmentată de date intermediare, care conține liste neordonate de perechi cheie-valoare. În mod ideal, numărul de părți ale acestei matrice intermediare trebuie să fie egal cu R, adică coincide cu numărul de "lucrători" responsabili de operația de reducere. Cu toate acestea, în practică, o serie de perechi care conțin aceeași cheie pot fi semnificativ mai mari (de exemplu, dacă cheia este una dintre cele mai populare cuvinte din interogările de căutare).

Pentru a reduce dimensiunea, MapReduce folosește procedura de agregare preliminară a datelor, atribuind perechilor populare o nouă valoare intermediară. Această procedură se numește combină și în mod inerent foarte asemănătoare pentru a reduce. Trebuie remarcat faptul că combinarea poate fi utilizată numai atunci când funcția utilizată în etapa de reducere a combinării datelor are proprietățile de comutativitate și asociativitate.

Agregate la mărimea necesară, o matrice intermediară de date poate ajunge la lucrătorii R "care efectuează o reducere. Merită să reamintim că reducerea în forma cea mai simplă funcționează cu toate valorile unei chei - de exemplu, cu numărul de mențiuni ale unui cuvânt. Aceasta înseamnă că pentru fiecare "angajat" este de dorit să se aplice perechi cu aceeași cheie. Problema este că acestea sunt împrăștiate în diferite părți ale listei formate de cartografi. Cum sa fii?

MapReduce nu este doar procesul de calcul în sine. Acesta este un sistem cu management centralizat, paralelizarea acestuia și monitorizarea erorilor în timpul executării acestuia.

Ultimul pas înainte de efectuarea procedurii de reducere este procedura de partiționare, care are ca rezultat perechi cu aceeași cheie care se încadrează pe aceleași "lucrători". Da, procesul necesită timp și trafic semnificativ în rețea, dar toate acestea sunt compensate de viteza de lucru în etapa următoare.

Fiecare redyuser în cele din urmă creează un fișier care stochează lista scurtată (de exemplu, în ordine alfabetică) de chei pentru care a fost responsabil, iar rezultatul prelucrării acestor valori-cheie (de exemplu, suma lor).

Pentru a reduce numărul de rezultate de calcul, MapReduce distribuie cu atenție datele intermediare către nodurile de reducere.

Deci, în adâncimile clusterului Google, se naște baza de date index a Internetului, sunt construite grafice de popularitate a URL-urilor și sunt executate alte operații necesare pentru funcționarea motorului de căutare.

Și nu numai pentru ea. Dezvoltatorii de aplicații Google, care necesită prelucrarea unor seturi de date mari, au evaluat rapid meritele calculatorului paralel MapReduce și au scris variantele lor de hartă și procedurile de reducere. Exact bază de date cuvânt actualizat Google Translate traducător, astfel că generează date despre zeci de ortografie corector ortografic Google Docs limbi și indexurile de voce morfeme Google Voice. Au fost multe aplicații ale MapReduce.

Ca și în sistemul de fișiere GFS, Google a explicat doar ideologia MapReduce, fără a dezvălui implementările specifice ale algoritmilor. Cu toate acestea, a fost suficient pentru a deschide comunitatea sursă în cadrul proiectului Hadoop a implementat o sarcină planificator nod de distribuție de calcul de cluster Hadoop FIRE Hadoop și cadrul MapReduce, pentru a crea propriul Mapper și redyusery.

Tehnologia MapReduce, orientată spre procesarea loturilor (sarcini distribuite de master, a așteptat, a strâns rezultatele) nu a putut lua în mod eficient în considerare aceste schimbări constante.

Mai clar, avantajele arhitecturii de cafeină înainte de soluțiile anterioare ale Google și nu imaginați.

Folosind cele mai bune practici și examinând cu atenție tendințele muncii noastre cu dvs. pe Internet, Google încearcă să ia pași proactivi în dezvoltarea inimii dvs. - motorul de căutare.







Trimiteți-le prietenilor: