Computerworld News Service: Som verdens største sociale netværk akkumulerer Facebook større mængder data på en enkelt dag, end mange virksomheder af en pæn størrelse genererer på et helt år.
Facebook gemmer meget af denne datamængde i sin enorme Hadoop-klynge, som er vokset eksponentielt i de seneste år.
I dag indeholder klyngen svimlende 30 petabyte data (30.000.000.000.000.000 byte) eller - som Facebook beskriver det - omtrent 3.000 gange så megen information som i USA's kongresbibliotek.
Facebooks lager af data er vokset med mere end en tredjedel i det forløbne år, bemærker virksomheden.
For at have plads til de stigende datamængder igangsatte Facebook tidligere i år et initiativ for at flytte den evigt voksende Hadoop-klynge til et nyt og større datacenter i Prineville i Oregon. Facebooks største datamigration nogensinde blev gennemført i juni, oplyser virksomheden.
Paul Yang, der er ingeniør i Facebooks datainfrastruktur-team, opridsede i sidste uge projektet på virksomhedens blog. Her fortæller Yang, at det var nødvendigt at migrere til det nye datacenter, fordi der ikke længere var kapacitet til at tilføje flere noder til Hadoop-klyngen.
Det var ikke umiddelbart muligt for Yang at lade sig interviewe til Computerworld om projektet.
Facebooks erfaringer med Hadoop vil dog sandsynligvis være af interesse for det stigende antal virksomheder, der anvender open source-softwaren fra Apache til at opbevare og analysere enorme mængder af både struktureret og ustruktureret data.
En stor del af tiltrækningskraften ved Hadoop er dens evne til at bryde meget store datasæt ned i mindre blokke, der derefter distribueres på tværs af en klynge af systemer bestående af standard serverhardware, så de kan behandles hurtigere.
En rapport fra Ventana Research, der udkom i sidste uge, viser, at et stigende antal virksomheder er begyndt at anvende Hadoop til at indsamle og analysere enorme mængder af ustruktureret og maskingenereret data såsom lognings- og hændelsesdata, søgemaskineresultater samt tekst- og multimedieindhold fra sociale medier.
Facebook anvender Hadoop til dagligt at indfange og gemme milliarder af informationer genereret af det sociale netværks brugere. Disse data analyseres ved hjælp af open source-værktøjssættet til datawarehousing Apache Hive.
Andre datatunge virksomheder anvender Hadoop til lignende formål heriblandt eBay, Amazon og Yahoo. Yahoo er selv en af de store bidragydere af kode til Hadoop.
Replikerer fra klynge til klynge
Bloggere påpegede allerede i maj 2010, at Facebooks Hadoop-klynge var verdens største.
På daværende tidspunkt bestod klyngen af i alt 2.000 maskiner - 800 systemer med 16 processerkerner og 1.200 systemer med otte processerkerner - der hver især lagrede mellem 12 og 24 terabyte data.
Facebook havde et par metoder at vælge imellem til flytning af klyngen til det nye datacenter, beskriver Yang i sit blogindlæg.
Virksomheden kunne fysisk flytte hver node til den nye beliggenhed, hvilket "med nok hænder til jobbet" kunne gennemføres på få dage, fortæller han. Facebook besluttede dog at gøre noget andet, da denne tilgang ville have resulteret i en uacceptabel lang nedetid, oplyser han.
I stedet besluttede Facebook at bygge en ny, større Hadoop-klynge og simpelthen replikere dataene fra den gamle klynge over på den nye. Denne tilgang var en mere kompliceret løsningsmodel, da kildedataene, som Facebook skulle replikere, var på et live system, hvor filer kontinuerlig blev oprettet og slettet, forklarer Yang i sit blogindlæg.
Derfor var Facebooks udviklere nødt til at bygge et nye replikerings-system, der kunne håndtere den uden sidestykke store klynge og den uhørt store databelastning.
"Da replikering minimerer nedetiden, var det den tilgang, vi besluttede at bruge til denne kolossale migration," fortæller han.
Replikation ved nedbrud
Datareplikerings-projektet blev ifølge Yang gennemført i to trin.
Først blev de fleste af dataene og registrene fra den oprindelige Hadoop-klynge kopieret i sin helhed til den nye klynge ved hjælp af open source-værktøjet DistCp.
Derefter blev alle ændringer af filer og data, der var sket, efter massekopieringen blev foretaget, replikeret til den nye klynge ved hjælp af Facebooks nyligt udviklede system til filreplikering. Disse filændringer blev registreret af et plugin til Hive, der ligeledes var blevet udviklet inhouse af Facebooks egne udviklere.
Da det blev tid til at foretage omstillingen, lukkede Facebook midlertidigt for Hadoops evne til at oprette nye filer og lod sit replikerings-system færdiggøre replikeringen af alle data til den nye klynge. Herefter var der kun tilbage at ændre DNS-indstillingerne til at pege på den nye server.
Facebooks eget hurtige værktøj til data-replikering var ifølge Yang afgørende for migrationsprojektets succes.
Udover anvendelse til datamigration giver replikerings-værktøjet ifølge Yang også Hadoop-klyngen nye muligheder i forhold til genoprettelse efter it-nedbrud, den såkaldte disaster recovery-disciplin.
"Vi har vist, at der er muligt på en effektiv måde at holde en aktiv klynge på adskillige petabyte ordentligt replikeret med kun en lille forsinkelse," siger han.
"Med anvendelse af replikering kan driften relativt let flyttes over til den replikerede klynge i tilfælde af nedbrud."
Oversat af Thomas Bøndergaard