‘Big Data’ elemzési eszközök nyílt forráskódú platformokon
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.
Követelmények
- Jelenlét: Ajánlott mert nincs jegyzet
- NagyZH: TODO
- Házi: TODO
"A tárgy jegyének megszerzéséhez a ZH legalább elégséges teljesítése szükséges, valamint egy házi feladat elkészítése és megvédése. Az érdemjegyet a ZH illetve a házifeladat érdemjegyének átlagával számítjuk ki, a 0.5-re végződő eredményeket felfele kerekítjük. ZH a 8. vagy a 9. héten, pótZH és házifeladat bemutatása a 14. héten lesz."
Számonkérések
Házifeladat
Részletesen: http://adatbanyaszat.tmit.bme.hu/twiki/bin/view/Targyak/BigData2013Hazi
Feladatok és eszközök kiválasztása
Az alábbi feladatok közül a használt eszközök fényében kell néhány darabot kiválasztani. A használható eszközök és a megoldandó feladatok száma:
- Java MapReduce programozás: 1 feladat
- Hadoop Streaming programozás más programnyelven (Python, R, stb.): 2 feladat
- Hive és Pig: 3 feladat
Ha tehát valaki Hive-ban és Pig-ben akar dolgozni, akkor az alábbi feladatok közül 3-at is meg kell oldania és mindkét eszközt használnia kell, tehát mondjuk 2 feladat Hive-ban, 1 feladat Pig-ben. Ezzel szemben ha valaki Java programozással akar MapReduce elemzést csinálni, akkor az alábbiak közül elegendő egyetlen szabadon választott feladat megoldása. Hadoop Streaming esetén 2 feladat megoldása szükséges.
Választható feladatok
- HTML lapletöltések hisztogramja: az adatokból egy olyan grafikont kell kirajzolni, mely bemutatja, hogy hány olyan kliens (host) volt, aki 0 darab html oldalt töltött le, hány olyan aki 1-et, 2-t, stb. Az elemzés kimenete tehát egy két oszlopot tartalmazó tábla (html letöltésszám, hostok száma), illetve egy grafikon, amely bármely megjelenítő programmal (pl. Excel) előállítható.
- Utolsó 2 letöltött HTML oldal: minden egyes kliens (host) esetén ki kell gyűjteni az (időben) utolsó 2 letöltött HTML oldalt. Az eredmény tehát egy három oszlopot tartalmazó tábla (host, utolsó html oldal, utolsó előtti html oldal). Ha egy kliens (host) nem töltött le két html oldalt, akkor a megfelelő mezők üresen maradjanak.
- Napi egyedi látogatók (hosztok) száma: számítsuk ki minden napra, hogy hány egyedi látogató (host) volt aznap az oldalon, majd ezt ábrázoljuk grafikonon.
- Visszatérő látogatók (hosztok) listája: Visszatérő látogatónak tekintjük azt a hostot, ami két (vagy több) különböző napon is meglátogatta az oldalt és a legkorábbi és legkésőbbi lapletöltése között legalább 6 óra telt el. Ezzel kiszűrjük azokat a látogatókat, akik éjfél előtt és éjfél után közvetlenül látogatják meg az oldalt. A megoldás ezen látogatók listája és darabszáma.
Zárthelyi
- Előrevetíti: konkrét elemzési feladat (pl átlag) megvalósítása mapredben. Joinolni nem kell tudni. Akármilyen nyilazós sémás dologgal is megoldható nem kell java kódot írni. Pl:
Kell: minden nap hány külöböző sessionid volt egy nap? SELECT date, COUNT(DISTINCT sessionid) FROM table GROUP BY date M:(sorid,sor)->(date+session, 1) R:(date+session,list(1))->(date+sessionid,1) M:(date+sessionid,1)->(date,1) R:(date, list(1))->(date,sum)
- TODO
Segédanyagok
A kurzusok anyagai a TMIT honlapján:
Tapasztalatok
2013/2014
A tárgy először 2013/2014 őszén került meghirdetésre.
Én MapReduce-os házit csináltam, az egyáltalán nem volt gáz. A kiadott VM-en minden megvan ami kell, csak legyen min futtatni magát a VM-et. Ha elég jól megy a Java és megvan mit csinál a Map és mit a Reduce, akkor hamar meg lehet csinálni.