====== B0M33BDT – Technologie pro velká data ====== ==== Důležité odkazy ==== * [[https://www.metacentrum.cz/cs/Sluzby/Hadoop/|výpočetní cluster Metacentrum]] -- v přihlášce uveďte, že patříte do evidenční skupiny CVUT:FEL:B0M33BDT, ev. CVUT:FEL:A4M33BDT * tabulka s bodováním (připravuje se) * [[https://github.com/stameser/BDT|repozitář s materiály pro cvičení]] ==== Prerekvizity ==== Pro absolvování předmětu je potřeba umět aspoň na základní úrovni: * Linux (manipulace se soubory a adresáři, orientace v adresářové struktuře) * SQL (vytvoření tabulky, jednoduchý SELECT, agregační SELECT, JOIN) * Python * typy list, tuple, dict, set * manipulace s textovými řetězci * flow control (if, while, for) * definice funkce (def), lambda funkce * základní regulární výrazy Doporučujeme si nosit vlastní notebook, který se dokáže připojit na internet. Je potřeba mít aplikace na SCP připojení (např. WinSCP) a na SSH připojení (např. PuTTY). Hodí se i inteligentní textový editor pro psaní skriptů v Pythonu a SQL (Notepad++, PSPad apod.). ==== Rozvrh ==== Výuka probíhá vždy **ve středu** v budově na Karlově náměstí. * **lichý týden (L):** * pouze přednáška 9:15–10:45, místnost KN:E-127 * **sudý týden, varianta A (S-A):** * přednáška 9:15–10:45, místnost KN:E-127 * cvičení 2 paralelky 11:00–12:30 a 12:45–14:15, místnost KN:E-307 * **sudý týden, varianta B (S-B):** * supercvičení 2 paralelky 9:15-11:30 a 12:00-14:15 KN:E-307 První týden semestru je lichý, dále viz níže. Rozdělení do paralelek na cvičení a supercvičení je věcí vaší dohody. Kapacita místnosti na cvičení je 22 míst, ostatní pak musí sedět vedle, na židli bez stolečku nebo se k někomu vmáčknout. V minulých letech bylo na první paralelce přeplněno a na druhé relativně volno. ==== Sylabus a plán semestru ==== * **1. týden (L, 25. 9.):** Organizace přednášek, klasifikační požadavky. Motivace, přehled, aplikace. ({{ :courses:b0m33bdt:b0m33bdt-1p.pdf | PDF }}) * **2. týden (S-A, 2. 10.):** * přednáška -- Hadoop, architektura clusteru. ({{ :courses:b0m33bdt:b0m33bdt-2p.pdf | PDF}}) * cvičení -- první kroky na clusteru; **nutno si předem vyřídit přístup na Metacentrum, viz výše**. * **3. týden (L, 9. 10.):** Úvod do technologií. ({{ :courses:b0m33bdt:b0m33bdt-3p.pdf | PDF}}, [[https://github.com/stameser/BDT/blob/master/prednasky/python_basics.html|Python notebook]]) * **4. týden (S-B, 16. 10.):** Supercvičení -- technologické prerekvizity (Linux + Python + SQL). ({{ :courses:b0m33bdt:b0m33bdt-2c.pdf | PDF}}) * **5. týden (L, 23. 10.):** Storage (HDFS, Hive, Impala). ({{ :courses:b0m33bdt:b0m33bdt-4p.pdf | PDF}}) * **6. týden (S-B, 30. 10.):** Supercvičení -- HDFS, Hive. ({{ :courses:b0m33bdt:b0m33bdt-cviceni-hive.pdf | PDF}}) * **7. týden (L, 6. 11.):** Map-reduce paradigma a implementace. ({{ :courses:b0m33bdt:b0m33bdt-5p.pdf |PDF}}) * **8. týden (S-A, 13. 11.):** Spark RDD (přednáška i následné cvičení), {{ :courses:b0m33bdt:b0m33bdt-6p.pdf |PDF}}, {{ :courses:b0m33bdt:spark-prednaska-priklady.py |kód příkladů}}. //Na začátku cvičení pro každou skupinu proběhne krátký písemný test z teorie od 1. do 7. týdne včetně (10 otázek, 15 minut).// * **9. týden (L, 20. 11.):** Spark SQL: {{ :courses:b0m33bdt:b0m33bdt-7p.pdf |PDF}}, {{ :courses:b0m33bdt:spark-sql-prednaska-priklady.py |kód příkladů}}. * **10. týden (S-B, 27. 11.):** Supercvičení -- Spark: {{ :courses:b0m33bdt:b0m33bdt-cviceni-spark-sql.pdf |PDF}}. //Na začátku cvičení pro každou skupinu je náhradní termín testu z teorie od 1. do 8. týdne včetně (10 otázek, 15 minut). Vztahuje se jen na ty, kdo neabsolvovali test 13. 11.// * **11. týden (L, 4. 12.):** Bigdatové architektury. ({{ :courses:b0m33bdt:b0m33bdt-8p.pdf |PDF}}) * **12. týden (S-A, 11. 12.):** Další bigdatové technologie (přednáška i následné cvičení), {{ :courses:b0m33bdt:b0m33bdt-9p.pdf |PDF}} * **13. týden (L, 18. 12.):** Big Data Science {{ :courses:b0m33bdt:b0m33bdt-10p.pdf | PDF}}. * **14. týden (S-B, 8. 1.):** Zápočtový test -- pokyny viz níže. ==== Domácí úkoly ==== * {{ :courses:b0m33bdt:domaci-ukol-1.pdf |Zadání domácího úkolu č. 1}} (termín vypracování do 31. 12. 2019) * {{ :courses:b0m33bdt:domaci-ukol-2.pdf |Zadání domácího úkolu č. 2}} (termín vypracování do 31. 12. 2019) ==== Klasifikační požadavky (zápočet, zkouška) ==== **Zápočet** je možné získat jedním ze dvou způsobů (navzájem se nevylučují): * Vypracování zápočtové úlohy aspoň za 25 bodů (max. 50 bodů). * zpracování samostatné analýzy velkého datového souboru –- zadání pro analýzu dohodne student s pověřeným vyučujícím ([[sergii.stamenov@profinit.eu|Sergii Stamenov]]) * dokumentace postupu a sepsání závěrečné zprávy (cca 10 stran) * Zisk aspoň 25 bodů z 50 možných za průběžný test, domácí úkoly a zápočtový test. * během semestru proběhne test z teorie, lze z něj získat max. 10 bodů * v závěrečném praktickém testu lze získat max. 30 bodů * za každý z domácích úkolů lze získat max. 5 bodů * granularita hodnocení ve všech disciplínách jsou půlbody **Zápočtový test** proběhl ve středu 8. 1. **//Aktuální náhradní termín je 15. 1.//** od 9.15 v E-307.\\ Obsahem testu budou praktické úlohy na zpracování dat pomocí Hadoopu a jeho technologií. Každý pracuje samostatně, ale je povoleno používat vlastní i internetové podklady: zápisky, vzorové kódy z přednášek i cvičení, Google, Stack Overflow apod.\\ **Zkouška** proběhne formou pohovoru s přednášejícím na teoretická témata přednesená během semestru. Počet bodů získaných pro zápočet má vliv na známku u zkoušky. ==== Kontakt ==== [[jan.hucin@profinit.eu|Jan Hučín]] ==== Literatura ==== Hadoop: The Definitive Guide, 4th Edition, by Tom White