1 / 17

Spracovanie logov on-line hry Divoké kmene

Spracovanie logov on-line hry Divoké kmene. Michal Lulčo FIIT, STU Bratislava 6.12.2010 Vedúci projektu: Mgr. Martin Šeleng, PhD. Cieľ. Vytvorenie programu na spracovanie logov hry divoké kmene Získanie štatistických informácií o hráčoch (vek, pohlavie, bydlisko) Určenie typov hráčov

raja
Télécharger la présentation

Spracovanie logov on-line hry Divoké kmene

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Spracovanie logov on-line hry Divoké kmene Michal Lulčo FIIT, STU Bratislava 6.12.2010 Vedúci projektu: Mgr. Martin Šeleng, PhD.

  2. Cieľ • Vytvorenie programu na spracovanie logov hry divoké kmene • Získanie štatistických informácií o hráčoch (vek, pohlavie, bydlisko) • Určenie typov hráčov • Určenie aktivity počas dňa a počas týždňa

  3. Existujúce riešenia • Doteraz žiadne • Jediné informácie dostupné v logoch • TW Stats – interná aplikácia hry, ktorá však neposkytuje informácie, ktoré boli požadované, len vypisuje dáta z logov v inom formáte

  4. Vstupné dáta • Textové súbory, v ktorých sú jednotlivé záznamy v riadkoch a jednotlivé stĺpce sú oddelené čiarkou • Stĺpce, ktoré majú textový charakter sú este URL Enkódované

  5. Riešenie • Pomocou jazyka PigLatin • Vstavané funkcie (LOAD, GROUP, JOIN...) • Možnosť definovania vlastných funkcií (UDF) v jave

  6. Ukážka UDF v jave package sk.fiit.lulco.vi; import org.apache.pig.EvalFunc; import org.apache.pig.backend.executionengine.ExecException; import org.apache.pig.data.Tuple; publicclass GetGender extends EvalFunc <String> { public String exec(Tuple input) throws ExecException { String str = (String)input.get(0); if (str != null) { if (str.equals("m")) { return "man"; } elseif (str.equals("f")) { return "woman"; } } return "undefined"; } }

  7. Ukážka scriptu v jazyku Pig -- genders -- zaregistruje jar súbor s UDF REGISTER kmene.jar; -- definuje skratku pre UDF GetGender DEFINE GG sk.fiit.lulco.vi.GetGender(); -- načíta záznamy zo súboru a stĺpcom dá im názvy profiles = LOAD 'profile.txt' USING PigStorage(',') AS (id, date, gender, city); -- zoskupí riadky podľa stĺpca gender a dá ich do jedného riadku genders = GROUP profiles BY gender; -- pre každý riadok vytvorí slovný popis pohlavia (z UDF GG), a spočíta koľko pôvodných riadkov obsahuje genderList = FOREACH genders GENERATE GG(group), COUNT(profiles) AS count; -- zoradí zoznam podľa stĺpca count zostupne genderList = ORDER genderList BY count DESC; -- uloží výstup do priečinka output/profiles/genders, názov súboru je part-r-00000 STORE genderList INTO 'output/profiles/genders';

  8. Dosiahnuté výsledky • Týždňový rozvrh hráča • Denný rozvrh hráča • Typ hráča • Pohlavie a vekové kategórie hráčov • Najčastejšie dobyté dediny

  9. Týždňový rozvrh hráča

  10. Denný rozvrh hráča

  11. Typ hráča

  12. Pohlavie a vekové kategórie hráčov

  13. Najčastejšie dobyté dediny

  14. Problémy pri riešení • Spojazdnenie HDFS • Vyriešené použitím lokálneho prístupu • Spočiatku vytváranie vyhodnocovacích UDF • Vyriešené pomocou overridnutia metód, ktoré určujú typ vstupu • Neskôr vytváranie UDF na uloženie dát • Vyriešené pomocou javovských funkcií pre prácu so súbormi

  15. Spustenie programu • Po rozbalení zip archívu sa program spúšťa príkazom pig-0.7.0/bin/pig –x local script.pig • Možnosť nahradenia vstupných dát novšou verziou, alebo verziou z iného sveta či servera => všobecná použiteľnosť pre hru divoké kmene z rôznych krajín

  16. Záver • Podarilo sa mi splniť cieľ, ktorý som si dal, aj keď niektoré výstupy majú v súčasnosti iný formát (napríklad denný a týždenný rozvrh hráčov mal byť v jednom súbore)

  17. Ďakujem za pozornosť

More Related