Kaip Google išmoko apdoroti šimtus petabaitų duomenų?  (2)

Karaliumi tarp paieškos sistemų jau daugiau nei dešimtmetį yra Google. Kompanijos comScore duomenimis, per 2012 metų paskutinius du mėnesius amerikiečių paieškos gigantas apdorojo apie 114,7 mlrd. užklausų – tai atitinka 65,2% pasaulinės paieškos sistemų rinkos.


Prisijunk prie technologijos.lt komandos!

Laisvas grafikas, uždarbis, daug įdomių veiklų. Patirtis nebūtina, reikia tik entuziazmo.

Sudomino? Užpildyk šią anketą!

Pagal šį rodiklį artimiausią konkurentą, Kinijos Baidu, Google lenkia mažiausiai aštuonis kartus. Tiesą sakant, psichologai ėmė vartoti netgi specialų terminas – Google Effect: šiuolaikiniam žmogui, pasirodo, lengviau ne įsiminti faktą, tačiau reikiamu momentu jį surasti Internete.

Toks populiarumas reiškia, kad Google paieškos indeksų dydžiai net ne dideli, o sunkiai įsivaizduojamo dydžio. Dar ne visi suvokia, jog kai mes įvedame norimą užklausą į paieškos laukelį, tai kreipiamės į vieną didžiausių duomenų saugyklų visame pasaulyje. Dar įspūdingiau atrodo štai kas: tam, kad petabaituose informacijos būtų surastas atsakymas į mūsų klausimą, kompanijai Google užtenka sekundžių dalių. Štai jums Dideli Duomenys (Big Data) visu gražumu!

Kaip gi paieškos sistema, startavusi su žymiu atsilikimu nuo buvusių rinkos lyderių, pasiekė tokią galybę?

Žinoma, atsakymas slypi ne tik resursų paieškos procese, bet ir infrastruktūroje. Ir šioje srityje Google ne tik atliko proveržį. Sprendimas, pirmą kartą panaudotas šios paieškos sistemos, tapo standartu defacto daugeliui sėkmingų kompanijų, kurioms tenka dirbti su dideliais duomenimis, kurie dažnai ypač silpnai struktūruoti.

Kelias į galybės viršūnę

Kai 1998 metais Sergey Brin ir Larry Page pateikė Stenfordo universiteto bendruomenės teismui „Didelės apimties paieškos sistemos anatomiją“, jie su savo prognozėmis buvo gana kuklūs, t.y. jie dar nelabai įsivaizdavo, kokius potencialiai milžiniškus duomenų kiekius apdoros jų „vaikas“.

Prie straipsnio pridėtame priede jie bando įvertinti užduočių apimtis, kurias teks apdoroti jų paieškos sistemai. Tarkime, sistemai būtina indeksuoti viską, ką JAV gyventojai (tuo metu jų buvo apie 250 mln.) Internete sugeba parašyti per visus metus. Tegul kiekvienas amerikietis kiekvieną per dieną parašo apie 10 kilobaitų tekstinės informacijos. Tai reiškia, kad paieškos sistemai per save reikės praleisti apie 850 terabaitų informacijos.

Būsimų milijardierių skaičiavimu, jei gerai žinomas Mūro dėsnis ir toliau galios, tai centralizuota skaičiavimų sistema, galinti apdoroti tokį duomenų masyvą ir prieinama savo kaina nedidelėms kompanijoms, galės atsirasti tik po penkiolikos metų. Būtent todėl straipsnis baigiamas išvada, kad ateitis – tai paskirstyta tarp sistemų indeksacija.

Beje, tuomet abu Google įkūrėjai skundėsi, kad įtikinti pasaulį naudoti paskirstytąsias sistemas yra labai sunku – juk daugybės mazgų administravimas pakankamai brangus dalykas

Straipsnyje aptariami skaičiai žymiai viršijo tuometinio Google galimybes. Paieškos sistemos mažytis klasteris, tuomet patalpintas vienoje iš universiteto patalpų, tuomet saugojo vos 24 mln. puslapių ir indeksų bazę. Artimiausioje perspektyvoje vaikinai planavo turinį padidinti iki 100 mln. puslapių. Toliau jie negalvojo, ir, matyt, įsivaizduoti negalėjo, kad po penkiolikos metų jų sistema sugebės apdoroti neįtikėtinus 24 petabaitų duomenų per dieną.

Nemaža dalimi unikalų Google produktyvumo lygį sąlygojo tas pasiūlymas, kuris numatė, kad paieškos sistemų ateitis – tai paskirstytieji skaičiavimai.

Tokios kompanijos, kaip Dell ir Hewlett-Packard (HP) pardavinėjo galingus ir nuo įvairiausio pobūdžio gedimų apsaugotus klasterius. Tik Google įkūrėjai, plėtodami savo sistemą, jais nepasinaudojo. Iš dalies, dėl didelės kainos, tačiau daugiausia tai įtakojo kruopštūs tyrimai, kuriuos atliko geriausi specialistai. Pastarieji pademonstravo, kad su dideliais duomenimis geriausiai susidoros sąlyginai nebrangių kompiuterių masyvas, kuris veiks su atviro kodo sistemomis (pavyzdžiui, Linux).

Vis tik tam, kad visa tai iš tikrųjų taptų realybe, praktiškai visame kame reikės atsiriboti nuo egzistavusių tuo metu standartų ir mąstymo šablonų.

Google serveriai

Kai tik Google savo paieškos efektyvumu ėmė lenkti visas tuomet egzistavusias paieškos sistemas, tapo aišku: Sergey Brin ir Larry Page komandai iš tikrųjų pavyko įgyvendinti savo idėją. Beje, vaikinai savo minčių neslėpė, o aktyviai apie jas pasakojo mokslinių publikacijų puslapiuose.

Ką gi pavyko sukurti Google komandai?

Pagrindiniu pasiekimu tapo architektūrinės piramidės sukūrimas – tai buvo aparatinė – programinė duomenų saugojimo ir WEB turinio indeksavimo sistema, kuri suteikia galimybę ją plėsti praktiškai iki begalybės.

Piramidės pagrindą sudaro klasterių masyvas, kuriame kiekvieno mazgo pagrindą sudaro nebrangus ir toli gražu ne pats patikimiausias kompiuteris – Google serveris. Jo architektūrą dar 2005 metais sukūrė talentingasis Ben Jai. Savo kūrinį, ilgai laikytą paslaptyje, jis vadino Google „Manheteno projektu“ – ir ne veltui. Tuo metu, kai klasteriai naudojo sudėtingas rezervinio maitinimo sistemas, kiekvienas Google serveris (2U formato) turėjo savo nuosavą 12 V bateriją.

Absurdas? Nieko panašaus. Šios nebrangios baterijos buvo montuojamos tiesiog serveryje, ir tai daugybę kartų sumažino Google imperijos išlaidas aparatinei įrangai. Susitarti su motininių plokščių gamintojais (iš pradžių tai buvo Gigabyte), kad būtų atliktos nedidelės modifikacijos, buvo kur kas paprasčiau ir pigiau, nei montuoti ypač daug vietos užimančias rezervinio maitinimo sistemas.

Jei ne pigi „geležis“, Google negalėtų augti tokiu greičiu. Greitai kompanija turėjo apie kelis šimtus tūkstančių serverių. Google duomenų apdorojimo centrai augo kaip grybai po lietaus. Buvo naudojami standartiniai konteineriai, skirti krovinių pervežimui jūros transportu. Jie būdavo aprūpinami serverių spintomis, kuriose tilpdavo 1160 serverių. Vienas toks konteineris suvartodavo apie 250 kilovatų energijos.

Serverio architektūroje naudojama rezervinė baterija, žinoma, labai sumažina finansines išlaidas. Tačiau koks tokios sistemos patikimumo lygis? Jei nutrūktų elektros tiekimas, toks serveris su viena baterija veiktų vos keletą minučių.

Ir tegu. Juk kitas Google architektūrinės piramidės lygis – tai paskirstytoji failų sistema Google File System (GFS). Pastaroji kaip tik ir sukurta darbui tokiomis sąlygomis, kai aparatinės įrangos ir tinklo sutrikimai yra normalus reiškinys, o ne katastrofa.

Google failų sistema

Kodėl Google pasirinko gana sudėtingą kelią ir ėmėsi savo failų sistemos kūrimo? Kodėl nebuvo galima panaudoti jau paruoštų failų sistemų, pavyzdžiui, NFS arba AFS? Viską lėmė specializacija.

Taip, NFS – tai puiki, gerai plėtojama failų sistema. Tačiau ji yra bendros paskirties sistema, skirta darbui su failais, kurių dydis sudaro nuo kelių baitų iki šimtų terabaitų. Tuo tarpu GFS yra siaurai specializuota ir nugali universalius sprendimus būtent tose užduotyse, kurios reikalingos Google.

Iš esmės, Google paieškos sistema atlieka keletą nesudėtingų operacijų: „sandėliuoja“ WEB robotų atsiunčiamą turinį, suspaudžia jį ir jo pagrindu sukuria indeksų bazę. Paskirstytoji failų sistema visa tai padeda daryti greitai ir efektyviai.

Šio projekto ideologas Howard Gobioff ir jo komanda viešai papasakojo apie GFS dar 2003 metais. Tuomet pasaulis buvo nustebintas sprendimu paskirstytų skaičiavimų aplinkoje naudoti centralizuotą planavimą. Antra vertus, nieko nuostabaus tokiame sprendime nebuvo. Nepatikimai aparatinei aplinkai visai nebūtina kurti sudėtingų planavimo įrankių, kurie išskirstytų duomenų masyvus į galybę serverių.

GFS darbo algoritmas taip smarkiai neįsitenka į egzistuojančią tradicinių failų sistemų veikimo ideologiją, kad Linux valdomi Google serveriai kreipiasi į GFS, apeidami Linux Virtual File System tvarkyklę, kuri paprastai ir naudojami tokiais atvejais. GFS veikia tarsi savarankiškas vienetas, ir sąveikauti su ja tenka per specialią programinę sąsają.

Žinoma, GFS realizacija gigantiškame nebrangių serverių masyve yra nuostabus sprendimas. tačiau Google architektūrinė piramidė „rankovėje turi dar vieną tūzą“.

MapReduce

Efektyviai saugoti indeksų bazę paskirstytoje ir linkusioje gesti aplinkoje, žinoma, yra puikus dalykas, tačiau bet kurios paieškos sistemos esmė yra greitas ir ekonomiškas algoritmas, kuris tą indeksų bazę sukuria. Juk galų gale, būtent jos dėka mūsų esminiai žodžiai paieškos laukelyje pavirsta nuorodomis į konkrečius resursus.

Ir čia Google sunku nevadinti pradininku. 2004 metais Jeffrey Dean ir Sanjay Ghemawat sukurta duomenų apdorojimo dideliuose masyvuose technologija, vėliau pavadinta MapReduce, faktiškai tapo Didelių Duomenų sinonimu.

Iš esmės, linijinės užduoties indeksavimo idėja buvo pritaikyta išskirstytai aplinkai, taigi MapReduce kūrėjai pasiekė, jog sudėtingas indeksų bazės sukūrimo procesas taip pat būtų vykdomas paskirstytai.

MapReduce – tai firminis sprendimas, tačiau idėja, kuri sudaro jos pagrindą, tokia permatoma ir efektyvi, jog ji staigiai buvo panaudota ir kitų kūrėjų. Bene populiariausia šios technologijos alternatyva tapo projektas Hadoop, kurį savo laiku pradėjo Yahoo, o dabar jį plėtoja Atviro Kodo bendruomenė.

Didelių IT sistemų pasaulyje buvo priimta patikėti patikimą duomenų saugojimą specialiai sukurtiems klasteriams – saugykloms, o operacijos juose buvo vykdomos, patelkiant didelės galios skaičiavimų klasterius. Tačiau Google į visa tai turėjo savo požiūrį. Kodėl gi nepanaudojus vieną ir tą patį klasterį turinio saugojimui ir indeksų bazės sukūrimui?

Būtent todėl failų sistema GFS ir technologija MapReduce korporacijos Google klasteriuose ypač glaudžiai integruotos. Vis tik Google inovacijų sąrašas šiomis Didelių Duomenų apdorojimo technologijomis nesibaigia. Dar yra ir kitų (pavyzdžiui, duomenų bazė BigTable, kuris įkvėpė NoSQL kūrėjus), kurios dabartinei Google leidžia vadintis neginčijama paieškos sistemų lydere visame pasaulyje.

FACEIT.LT – IT Naujienos

Pasidalinkite su draugais
Aut. teisės: Faceit.lt
(11)
(0)
(2)

Komentarai (2)