Szerző: Gálffy Csaba

2012. november 19. 08:59

Így gyorsítja a Hadoopot a Facebook

Egyre inkább hajlandó saját fejlesztéseiről, egyéni problémáiról és azok megoldásairól beszélni a Facebook. Az üzenet: nem csak a Google-nél dolgoznak úttörő programozók.

Kinyitotta saját fejlesztésű Hadoop-ütemezőjének forráskódját a Facebook. A közzétett bejegyzésben a meglehetősen szűk érdeklődésre számot tartó szoftver mellett azonban sikerült néhány érdekes adatról is fellebbenteni a fátylat, illetve bemutatni a Facebook által napi szinten megoldott számítástechnikai kihívásokat is.

A Facebookról már tudjuk, hogy az adatközpontok üzemeltetését már magas szinten űzi, a hosszútávú adattárolásban illetve energiahatékonyságban is az élen járók közé tartozik, de szoftveres fejlesztésben is viszi a prímet. A blogposzt szerint a cég belső használatra hatalmas IT-infrastruktúrát épített, amely több mint ezer műszaki (és nem-műszaki) alkalmazott információigényeit elégíti ki nap mint nap. A legnagyobb klaszter több mint 100 petabájtnyi információt tárol, az adattárház pedig napi fél petabájt információt fogad be. A lefuttatott lekérdezések száma sem elhanyagolható, a Hive-on keresztül napi 60 ezer lekérdezésre ad választ a rendszer.

Hatékonyabb, gyorsabb, saját

A legújabb fejlesztés a Corona névre keresztelt új Hadoop-ütemező, amely a feladatok kiosztásáért felelős Job Tracker szoftvert cseréli. A Facebook szerint ez utóbbi 2011 elejére teljesen képességeinek végére ért, az egyre nagyobb adathalmazokkal és az egyre több lekéréssel már nem volt képes hatékonyan megbirkózni, így saját fejlesztésű szoftver fejlesztése mellett döntött a csapat. A Corona sokkal jobban skálázódik nagyszámú feladatra és nagyobb mennyiségű adatra is, miközben alacsonyabb késleltetést, magasabb klaszter-kihasználtságot és jobb erőforráskiosztást biztosít.

A Facebook beszámolója szerint a releváns metrikákban a Corona igen látványos javulást hozott. A feladatokat fogadó (korlátozott számú) helyek maximális kihasználás esetén 10 másodperc helyett 600 ezredmásodperc alatt teltek meg, ezzel összefüggésben a klaszter kihasználtságának foka 70 százalékról 95 százalék közelébe emelkedett. Ezzel párhuzamosan csökkent a rendszer késleltetése is, a tesztfeladat várakozási ideje 50 másodpercről 25 másodpercre esett vissza.

A Corona kifejlesztése egyébként jól mutatja a Facebook speciális helyzetét is: az Apache YARN vagy Mesos projektje ugyanis nagyon hasonló problémákra ad hasonló választ, a saját Hadoop környezet testreszabásával azonban már annyira messze jár a közösségi szolgáltató, hogy az ilyen külső szoftverek adaptálása több problémát vet fel, mint amennyit megoldana. A YARN például alapból nem ismeri a Facebook által használt HDFS fájlrendszert, a támogatás beépítése, majd a teljes körű tesztelés időigényes és kockázatos feladat lett volna, továbbá kérdéses, hogy a YARN működött volna-e egy Facebook-méretű adatbázison.

Egyedi problémák a csúcson

A Facebook az elmúlt években a gyors skálázódás nyomán fokozatosan a számítástechnika egyik úttörő cégévé lépett elő, ahogy egyre több olyan megoldásra váró problémába ütközött, amelyekkel eddig még senki nem találkozott. A Google járt hasonló cipőben jó egy évtizeddel ezelőtt, a keresőalgoritmus és az azt kiszolgáló adatbázis megfelelő kezelése egészen egyedi problémákat vetett fel, amelyekre a választ a nulláról fejlesztett saját szoftver tudta csak megadni. A Google is hisz a közösség erejében, a saját fejlesztésű szoftvereket egy idő után kinyitja - így vált közkinccsé a MapReduce-ból kinőtt Hadoop is. A Google időközben persze már továbblépett, a MapReduce helyét már egyre inkább a Percolator veszi át a keresőóriás rendszereiben.

A Facebook több mint egymilliárdos aktív felhasználói számával már ilyen sztratoszférikus magasságokba emelkedett, egyre több olyan problémával találkozik, amelyekre nincsenek kész megoldások, a létező szoftverek pedig nem adnak optimális eredményt. Ilyenkor a közösségi oldalnak sincs más választása, házon belül kell kitermelni a személyre szabott, minél inkább optimalizált megoldást. A Facebook ezen eszközök forrását rendszeresen ki is nyitja, egyrészt mert ha már többen használják és fejlesztik azt, akkor megbízhatóbbá válik a szoftver és nem utolsósorban a fejlesztés költségei is megoszlanak.

A szoftver kinyitásának, a belső problémák és megoldások szélesebb körű ismertetése ugyanakkor ötletes HR-fogás is. Míg a Google közismerten a programozás és általában a számítástechnika élvonalába tartozik, a Facebook imázsa korántsem ilyen erős. Az ilyen és ehhez hasonló posztokkal azonban a Facebook be tudja mutatni, hogy vannak valódi megoldásra váró problémák a közösségi szolgáltatásokban is, a kihívásokat kereső, kiváló programozók így náluk is megtalálhatják számításaikat.

A Corona projekt a Facebook GitHub oldalán nézhető meg, itt érhető el a forráskód és tölthető le a szoftver.

a címlapról