Az adatbányászat – a többi IT-ágazattal azonos módon – erős teoretikus és praktikus feltételeket egyaránt támaszt. Vagyis nem elég, hogy tudjuk, hogyan kell megoldani egy adattudományi feladatot, ténylegesen is ki kell vitelezni a megoldást. Különösen a big data területén igaz, hogy a szokatlanul kiterjed és heterogén adatkészletek új, eredeti technológiák kidolgozását követelik meg (amelyek ugyanakkor még hatékonyabb elméleti módszerek kialakítását teszik majd lehetővé). A big data megoldás közül napjainkra leginkább az Apache Hadoop platform bizonyul sikeresnek, ezt szeretnénk most röviden bemutatni.
Mi a Hadoop?
A Hadoop egy nyílt forráskódú adattárolási- és feldolgozási technológia, amely különösen alkalmas eltérő adattípusok befogadására. Két kialakítója, Mike Carafella és Doug Cutting (aki fia játékelefántjáról vette az elnevezést) célja eredetileg egy Nutch nevű átfogó webindex-rendszer kidolgozása volt, amihez az eredendően a Google által kifejlesztett MapReduce és GFS (Google File System) koncepciókat alkalmazták – ezekből fejlődött ki a Hadoop-projekt. A projektet eleinte a Yahoo! támogatta annak reményében, hogy saját webindex-rendszere lehet, ennek köszönhetően gyorsan az egyik leghasználhatóbb ilyen megoldássá vált.
Mik a Hadoop előnyei?
Hamar kiderült azonban, hogy a web indexelésén túl általános adatmenedzsmentre is igen alkalmas, ezért több cég is jó hatásfokkal használni kezdte. Fő előnye lényegében az, hogy más, merevebb keretrendszerekkel ellentétben lehetőséget kínál a strukturált és strukturálatlan (!) adataink rugalmas lekérdezésére, amelyeket eredeti formájukban tárol. A jellemzően felmerülő feladattípusokat – keresés, logolás, termékajánlók, adattárház, kép- és videóanalízis – mind képes kielégíteni. Használatával lehetséges az állandóan (és rohamosan) növekvő, akár petabájtos adatkészletek költséghatékony (nagyjából más alternatívák árának 10% teszi ki) elemzése.
A standard harverigényű (általános szerverklaszereken futó) Hadoop könnyen bővíthető, robusztus (a legtöbb rendszerhibát adatvesztés vagy akár az elemzési folyamatok megszakítása nélkül, automatikusan tudja kezelni a redundáns a HDFS-fájlrendszer (lásd alább) jóvoltából.
A Hadoop-rendszer két fő komponense
- Hadoop Distributed File System (HDFS): a Hadoop-szerverklaszter számára kialakított fájlrendszer. Amikor adat érkezik a klaszterre, a rendszer azt részekre bontja, és a részeket különböző szervereken helyezi el. Mindegyik szerver csak egy-egy részét tárolja az adatkészletnek, és egy-egy rész több szerveren párhuzamosan is tárolódik.
- MapReduce: mivel a Hadoop az egész adatkészletet részletekben tárolja különböző szervereken, magának az adatelemzésnek is ehhez illeszkedően, párhuzamosan, több szerveren kell lefolynia. A gyakorlatban ez azt jelenti, hogy valamennyi szerver elvégzi a lekérést a rajta tárolt részadatokon, amelyek egységesítésével születik meg az eredmény. A MapReduce komponens végzi ezen feladatok kiosztását és az eredmények egységesítését.
Napjainkban a Hadoop gyakorlatilag a big data technológia szinonímájává vált, amelyet hatékonysága mellett ingyenessége, függetlensége is csábítóvá tesz – ha komolyabban akarsz adatelemzéssel foglalkozni, ismerd meg. Ebben igyekszünk később mi is segítséget nyújtani.