Computerra technológia google MapReduce oszd meg és uralkodj

Logisztika - egy csodálatos dolog. Érdemes egy pillantást a boltozat egy szupermarket - és világossá válik: nem óvatos rendelési áru van, és a beszéd nem megy olyan hatékony kereskedés. Eközben a hatalmas kereskedelmi házak csendben nyitotta meg kapuit a több tízezer fogyasztók és egyszerű keresés az mélyén feneketlen raktárak akart terméket.

Az információ a helyzet ugyanaz. Mentsd el - csak az egyik feladat. Információ kezelést igényel. Nem számít, mennyire hatékony semmilyen adatot tárolni, akkor nem segítenek kezelni vele.

A Google ismeri a problémát első kézből. A lány keményen dolgozó robotok összegyűjti tartalom éjjel-nappal egész bimbózó interneten, és küldje el a Google klaszter, ahol uralkodik a GFS elosztott fájlrendszer. Forgalmaz petabájt adat több százezer szerverek darab jobb, mint a tapasztalt szakértő logisztika, a folyamat, biztosítva számukra a biztonságos tároló, amely nem károsítja az esetleges hibák vagy berendezés meghibásodása.

De a kereső - nem annyira a tartalom tárolására, mint a rendszer gyorsan megtalálni alkatrészek kulcsszavak írja a keresőmezőbe.

Honnan tudom, hogy az milyen weboldalakat ezeket a kulcsszavakat? Mi forrás csak egyetlen kulcsszót, és mi - csak egy pár? Itt nem egy jó index alap elengedhetetlen.

Ahhoz, hogy egy bázis a peta léptékű adathalmaz - egy nem triviális feladat. Ténylegesen szükséges viszont a „séta” az egyes dokumentum annak meghatározására, hogy az tartalmazza a kívánt szót. Mindegy, lineáris folyamat.

De nem egy cég, amely a klaszter félmillió számítógépek.

Segítségével könnyen kezelhető a jól ismert paradigmája informatika az „oszd meg és uralkodj” elosztjuk az adathalmaz részekre és így mindegyikük egy külön index szerver. Nos, miután a indexelés összegyűjteni részei a megtalált megoldás együtt.

Ez az ilyen munkát, és a Google MapReduce technológiát dolgozott - egy hatékony eszköz a párhuzamosítás feladatok, normális körülmények között, oldja lineáris.

Inspiráció a múltból

Ne felejtsük el, mint a gyermek az anyanyelvén leckéket a feladatot adták, hogy érdekel? Talált például az oldalon a „Aranyhal” összes „O” betűt, és számolja a számuk. A diákok lelkiismeretesen, sorról sorra, és kinézett az „O”, hangsúlyozta őket, majd nyomatékosan -ról.

Most képzeljük el, hogyan lehet gyorsan küldeni az esetben, ha kaptak a vonalon minden tanuló az osztályban, ami számít a betűk száma tájékoztatni fogja neki előre kijelölt „mester varázslatot.” Anélkül, hogy részletesen, MapReduce technológia működik így.

Természetesen a fejlődő MapReduce, a Google alkalmazottai Jeffrey Dean (Jeffrey Dean), és Sanjay Gemavat (Sanjay Ghemawat) inspirálta nem iskolai. Volt egy másik nagy forrása a lelkesedés. Vissza az ötvenes évek végén a múlt század által szolgáltatott adatok lineáris listát, ez volt a célja a Lisp programozási nyelv - az őse az egész nyelvcsalád, a paradigma a funkcionális programozás.

Lisp és egyéb funkcionális nyelvek támogatják egy érdekes programozási modell, az úgynevezett Map / Reduce. Már a neve is mutatja, hogy ez foglalkoztat két eljárás - térkép, alkalmazza a megfelelő funkciót minden egyes tételt a listában, és csökkenti, amely egyesíti az eredményeket térképen.

Által végrehajtott műveletek a térképen funkciót és csökkenti. A legegyszerűbb esetben, az aggregációs adatokat az érték „gomb”.

Elvégzésére indexelés tárolt Google klaszter webtartalom fejlesztők MapReduce igazított általános modellje funkcionális programozási nyelvek a célokat.

Azt javasolták, hogy az egész MapReduce feldolgozott információk lehet leírni pár listát, amelyek mindegyike tartalmaz egy kulcsot és egy értéket. A tömb kulcs webes tartalom, persze, ez a keresett szót és jelentését - az 1. számú, megerősíti jelenlétét a szó.

A legegyszerűbb változata a Google MapReduce programozási modell térképen eljárás felvesz bemeneti szavak listáját tartalmazza a feldolgozott dokumentumok. Ez átalakítja minden egyes eleme a pár, az egyik eleme, amely egy szót, és a másik - az 1. számú.

Ezután a lista vesszük eljárás csökkenti, amely magában foglalja az elemek egy listáját ugyanazzal a kulccsal (azaz szó), és hozzáadja edinichki. Ennek eredményeként, a kimenet egy listát az összes kulcsszót az összeget a hivatkozások a különböző dokumentumokban. És ez az alapja a kereső indexe.

Egy szemléltető példa a munka funkcióit térkép és csökkentik.

Mint látható, semmi új alkotók nem találta MapReduce. Az igazi érdeme a másik. Valójában MapReduce - nem csak a programozási modell, mely segítségével meg tudjuk oldani a problémát, válogatása és csoportosítása adatokat. Ez - az egész architektúra, amely:

  • automatikus párhuzamosítás származó adatok egy nagy tömb, több feldolgozó csomópontok végző Térkép / Reduce eljárás;
  • hatékony terheléskiegyenlítését számítási csomópontok, nem ad nekik várakozó vagy túlterhelt mértéktelenül;
  • hibamentes működést technológiát, amely azt a tényt, hogy az általános feladata a feldolgozó egységek sérülhet, vagy valamilyen más okból kifolyólag, hogy hagyja abba adatokat dolgoz fel.

Így a MapReduce Google, egyrészt, ez biztosítja a felhasználó számára az adatok feldolgozási eljárások, és a másik - teszi átláthatóbbá párhuzamosítását feldolgozására a hatalmas Google klaszter.

Hogyan csinálják?

Párhuzamos Solvers, GFS, és mindegyik azonos klaszter

A leginkább ragyogó ötlet a design ötlete volt MapReduce helye modulok az eljárásokat térkép és csökkentse az ugyanazon darab szerverek - alapuló GFS fájlrendszert. Ez a megközelítési mód alatt a GPS-modul a funkciók a kezelést. Mentése hálózati forgalmat is.

További - több. Ahogy GFS, MapReduce technológia alapja az az elv „fő - beosztott.” „Head» MapReduce - eljárás Master - irányítja több szétszórt darab szerverek »munkavállalók« (munkások), amelyek közül néhány felelős működési térképe (nevezik őket mappers, vagy »leképező«), a másik, illetve a csökkentése (szűkítő - "redyusery").

Az eredmény egy új, osztva egy tömböt a köztes adatok rendezetlen listája a pár kulcs - érték. Ideális esetben, az alkatrészek száma ennek közbenső tömb egyenlőnek kell lennie R, vagyis ugyanaz, mint a szám a „Személyek”, felelős a művelet csökkenti. A gyakorlatban azonban egy sor párok, amelyek azonos kulcs jóval nagyobb lehet (például, ha a kulcs - ez az egyik legnépszerűbb szót a keresési lekérdezés).

Méretének csökkentésére, a MapReduce használ előzetes adatok aggregációs folyamat hozzárendelésével egy ilyen népszerű új közbenső érték párokat. Ezt az eljárást nevezik a kombájn és eredendően nagyon hasonló csökkentésére. Meg kell jegyezni, hogy a kombájn csak akkor használható, azokban az esetekben, amikor a funkció, mellyel csökkenteni lépéseket adatok kombinálása, amely tulajdonságai kommutativitás és asszociatív.

Az aggregálódott a kívánt méret a közbenső adatok tömb lehet, feltéve, hogy R «Workers” repülő csökkenti. Érdemes emlékeztetni arra, hogy csökkentse a legegyszerűbb formában dolgozik minden értékeit gomb - például az említések száma egy szó. Ez azt jelenti, hogy minden „munkavállaló” kívánatos, hogy a két azonos kulcsot. A probléma abban rejlik, hogy szét vannak szórva a különböző részein a lista keletkezett leképező. Hogy lehet ez?

MapReduce - ez nem csak a számítási folyamat. Ez egy olyan rendszer központosított felügyeleti, nyomon követésére és a párhu- benne hiba végrehajtás során.

Az utolsó lépés végrehajtása előtt az eljárás csökkenti az elosztási eljárás (particionálás), amelynek eredményeként a párokat, amelyeknek azonos kulcs, hogy ugyanazt a „munkások”. Igen, a folyamat időt igényel, és jelentős hálózati forgalmat, de ez kompenzálja a sebesség munkát a következő szakaszba.

Minden redyuser végül létrehoz egy fájlt, amely tárolja a rendezett (pl betűrendben) kulcsok listáját, amelyekre ő volt a felelős, és az eredmény a feldolgozás ezeket a kulcsfontosságú értékek (például az összegük).

Ahhoz, hogy csökkentik a számítási eredmények, MapReduce gondosan elosztja a közbenső adatok csomópontok csökkentik.

Tehát a gyomrában Google klaszter született és az index bázisa az internet, az épület egy grafikont népszerűsége URL, és végre más szükséges a kereső működését.

És nem csak neki. Google alkalmazás fejlesztők igénylő feldolgozása nagy adathalmazok gyors nyilvánvaló előnyei MapReduce párhuzamos számológép és írt a saját változatát térkép és csökkenti eljárásokat. Pontosan frissített szó tárol Google Translate fordító, így generál adatokat tíz helyesírás helyesírás-ellenőrző Google Docs nyelvek és indexek hang morféma Google Voice. MapReduce alkalmazások pontszámok talált.

Ahogyan az a GFS fájl motorok, a Google magyarázható csak MapReduce ideológia, hogy nem fedi konkrét megvalósítások annak algoritmusok. Azonban ez is elég volt ahhoz, hogy nyílt forráskódú közösség a Hadoop projekt végre egy feladat ütemező elosztó csomópont computing cluster Hadoop YARN Hadoop és a MapReduce keretet, hogy saját leképező és redyusery.

A technológia a MapReduce, összpontosított kötegelt feldolgozás (master elosztott feladat várt, összegyűjtött eredmények) nem tudta hatékonyan kezelni ezeket a folyamatos változás.

Több egyértelműen előnyös a Google koffein építészet korábbi döntéseket, és nem képzelte.

Segítségével a legjobb eredményeket, és gondosan vizsgálva a trendeket a közös munkát az interneten, a Google igyekszik tenni proaktív lépéseket a fejlesztés szíve - egy kereső.