Tárgyfelelős:
Célkitűzés:
A tárgy célja, hogy megismertesse a hallgatókkal a big data elemzésére alkalmas módszereket és algoritmusokat, különös tekintettel a széles körben elterjedt nyílt forráskódú technológiákra. A példák és a házi feladatok a Hadoop keretrendszerhez és más hozzá kapcsolódó technológiákhoz nyújtanak gyakorlati ismereteket. A hallgatók képesek lesznek nagy adatok elemzésére alkalmas rendszerek megtervezésére, létrehozására és elemzési feladatok megvalósítására.
A tantárgy részletes tematikája
- Bevezetés. A nagy adat (big data) fogalma, jelentése. A térnyerést elősegítő trendek: hardver költségek csökkenése, felhő technológiák terjedése. Tipikus üzleti felhasználási területek áttekintése. A leginkább elterjedt adatelemzési platformok bemutatása.
- Az Apache Hadoop bemutatása, története. Elterjedt nyílt forráskódú csomagok és lekérdező eszközök áttekintése. A HDFS adattárolási mechanizmusa: blokkok, replikáció, tömörítés, elterjedt fájlformátumok. A Namenode, Secondary Namenode és a Datanode feladata, szerepe.
- A MapReduce programozási paradigma bemutatása. Néhány adatelemzési példa MapReduce segítségével. A Hadoop MapReduce működése, programozása. A Jobtracker és a Tasktracker feladata, szerepe.
- Hadoop MapReduce programozás Java nyelven. A Streaming API használata, MapReduce programozás további programnyelveken. Tipikus programozási minták, optimalizációs megoldások. A join művelet megvalósítása MapReduce paradigma szerint.
- Apache Hadoop klaszterek kiépítése, üzemeltetése, tipikus karbantartási feladatok. Saját gépeken, illetve felhőben futó klaszterek összevetése. Hardver elemek méretezése, főbb konfigurációs paraméterek beállításai. Meghibásodási lehetőségek, nagy rendelkezésreállás biztosítása a Namenode és a Jobtracker esetén.
- SQL alapú lekérdező eszközök áttekintése: Hive, Impala. A Hive és az Impala felépítése és működése, különbségek a klasszikus adatbázisokhoz képest. A HiveQL lekérdező nyelv funkciói és hiányosságai. Saját függvények (UDF, UDAF) fejlesztési lehetőségei.
- A Pig adatelemzési szkriptnyelv bemutatása, a nyelv tulajdonságai, főbb funkciói. Adattípusok, vezérlési szerkezetek. A Pig és a Hive összehasonlítása.
- Zárthelyi dolgozat megírása
- Esettanulmány: Nagy méretű log adatok gyűjtése és elemzése Hadoop alapokon. Logok elosztott és megbízható tárolása HDFS-en, azok rendszerezése és elemzése Hive és Pig segítségével. Elemzési és üzemeltetési tapasztalatok.
- Az HBase elosztott adatbázis bemutatása. Bloom szűrők használata a gyorsabb kiszolgálás érdekében. Összehasonlítás további elosztott adatbázisokkal: Apache Accumulo, Cassandra.
- Gépi tanulási és adatbányászati algoritmusok megvalósítása Hadoop alapokon. A Mahout csomag bemutatása. A MapReduce limitációi, iteratív és memória-alapú kiterjesztései.
- Az Apache Giraph és a GraphLab gépi tanulási algoritmusok bemutatása. A gráf alapú implementációk előnyei és korlátai. Tipikus felhasználási területek.
- Esettanulmányok: Big data elemzésére vonatkozó referencia architektúrák, technológiai megoldások, üzleti felhasználási területek. Néhány Hadoop alapú architektúra és felhasználás bemutatása.
- Zárthelyi dolgozat pótlása, házi feladatok bemutatása