DISTRIBUOVAN SPRACOVANIE DT NAD MAPREDUCE ARCHITEKTROU HADOOP A
DISTRIBUOVANÉ SPRACOVANIE DÁT NAD MAPREDUCE ARCHITEKTÚROU (HADOOP A HIVE) Martin Šeleng Ústav Informatiky Slovenská akadémia vied Priemyselný výskum v oblasti efektívnej práce s rozsiahlymi dátami v používateľsky orientovaných aplikáciách Podporujeme výskumné aktivity na Slovensku/Projekt je spolufinancovaný zo zdrojov EÚ. Na realizáciu projektu sme získali nenávratný finančný príspevok v rámci Operačného programu výskum a vývoj.
Obsah • Úvod – Hive vznik a funkcia • Pripomenutie Hadoop a HDFS • Ukážka programu spracovávaného v Map. Reduce klusteri s dátovým skladiskom Hive • Záver WIKT 2010 Bratislava, 11 -12. 11. 2010 2
Hive – kedysi • Facebook – Postup zbierania dát vyprodukovaný používateľmi v rámci sociálnej siete Facebook • Dáta boli zbierané pomocou úloh zadaných v plánovači (boli to úlohy spúšťané v nočných časoch) a dáta boli zbierané do Oracle databázy • ETL (Extract, transform a load) úlohy boli naimplementované v Pythone – Množstvo spracovávaných dát • 2006 – niekoľko 10 GB • 2008 – okolo 200 GB nových dát • 2009 – okolo 5 TB (skomprimovaných) nových dát denne – Použitie systému Hive • • WIKT 2010 Spracovanie logov, dolovanie textových informácií, indexovanie dokumentov, modelovanie správania sa používateľov (túto vec má rád môj priateľ, možno ju budeš mať aj ty) a testovanie rôznych hypotéz. Bratislava, 11 -12. 11. 2010 3
Hive – dnes • Hadoop/Hive dátové skladisko – 5800 jadier, disková kapacita 8. 7 PB – 12 TB na uzol – Dve úrovne pripojenia topológie siete • • Filers 1 Gbit/s z uzla do switchu v danom racku 4 Gbit/s do hlavnej úrovne zo switchu racku Web Servers Scribe Mid. Tier • Štatistika (deň): – – 12 TB pridaných komprimovaných údajov 135 TB prezeraných komprimovaných údajov 7500+ spustených Hive úloh 80 000 hodín strojového času • Hive zjednodušuje Hadoop: Scribe-Hadoop Cluster Adhoc Hive-Hadoop Cluster – ~200 ľudí/mesiac spúšťa úlohy nad Hadoop/Hive – Analytici (nie informatici) používajú Hadoop pomocou Hive – 95% úloh je Hive úloh WIKT 2010 Hive replication Oracle RAC Bratislava, 11 -12. 11. 2010 Production Hive-Hadoop Cluster Federated My. SQL 4
Map. Reduce architektúra (Hadoop) WIKT 2010 Bratislava, 11 -12. 11. 2010 5
Distribuovaný súborový systém (HDFS) • Master/Slave architektúra HDFS (Hadoop Distributed File System) • Replikácia blokov dát WIKT 2010 Bratislava, 11 -12. 11. 2010 6
Čo Hive poskytuje • Samotný Hadoop (Map. Reduce) spolu s HDFS, už poskytuje možnosť spracovávať veľké mnoźstvá dát nahrané do HDFS • Čo však Hadoop neposkytuje je: – jazyk, ktorým by sa dalo jednoducho tieto úlohy písať (bez potreby písať Map. Reduce programy), – editor príkazového riadku, v ktorom by sa tieto úlohy mohli písať, – schémy o jednotlivých tabuľkách v databázach • Na všetky tieto otázky dáva Hive odpoveď – Poskytuje vlastný editor príkazového riadku (tzv. hive>), ktorý je podobný My. SQL editoru (mysql>) – Jazyk, ktorým je možné písať dopyty (HQL – Hive query language, podobné SQL) – Podporu pre JDBC klientov – Uloženie metadát o databázach a tabuľkách – Možnosť písať SQL dopyty, pričom Hive automaticky preloží tieto dopyty do Map a Reduce úloh – Dáta sú štandardne csv súbory, ale je možné použiť ľubovoľné objekty WIKT 2010 Bratislava, 11 -12. 11. 2010 7
Architektúra systému Hive WIKT 2010 Bratislava, 11 -12. 11. 2010 8
Ukážka práce so systémom Hive • http: //zlatyfond. sme. sk, pričom sme použili 2 diela od Pavla Országha. Hviezdoslava: Hájnikova žena a Ežo Vlkolinský • Map. Reduce klaster s implementáciou Hadoop inštalovaný na UISAV • 8 pracovných uzlov (slaves) a 1 riadiaci server (master) • Postup – Predspracovanie dát ako napr. : konverzia pdf do textovej podoby, vyhodenie diakritiky a konverzia veľkých znakov na malé – Nahratie dát do HDFS. • $hadoop fs -copy. From. Local ezo. txt • $hadoop fs -copy. From. Local zena. txt – Spočítanie slov (neberieme do úvahy slovenčinu, teda žiaden stemmer ani lematizátor) v jednotlivých dielach • $hadoop jar hadoop-0. 2+737 -examples. jar grep ezo. txt ezo_freq 'w+' • $hadoop jar hadoop-0. 2+737 -examples. jar grep zena. txt zena_freq 'w+' WIKT 2010 Bratislava, 11 -12. 11. 2010 9
Ukážka práce so systémom Hive – Zmažeme logy, ktoré boli vytvorené systémom Hadoop • $hadoop fs -rmr ezo_freq/_logs • $hadoop fs -rmr zena_freq/_logs – Prejdeme do editora príkazového riadku systému Hive • $hive • hive> CREATE TABLE zena (freq INT, word STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY 't' STORED AS TEXTFILE; • hive> CREATE TABLE ezo (freq INT, word STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY 't' STORED AS TEXTFILE; • hive> LOAD DATA INPATH "zena_freq" INTO TABLE zena; • hive> LOAD DATA INPATH "ezo_freq" INTO TABLE ezo; – Vypísanie obsahu tabuliek ezo a zena • hive> SELECT * FROM ezo SORT BY freq DESC LIMIT 10; – Najčastejšie sa vyskytujúce frekvencie slov v diele Hájnikova žena • hive> SELECT freq, COUNT(1) AS f 2 FROM zena GROUP BY freq SORT BY f 2 DESC; WIKT 2010 Bratislava, 11 -12. 11. 2010 10
Ukážka práce so systémom Hive – Vypísanie obsahu tabuliek ezo a zena • hive> SELECT * FROM ezo SORT BY freq DESC LIMIT 10; – Najčastejšie sa vyskytujúce frekvencie slov v diele Hájnikova žena • hive> SELECT freq, COUNT(1) AS f 2 FROM zena GROUP BY freq SORT BY f 2 DESC; WIKT 2010 Bratislava, 11 -12. 11. 2010 Všetky znaky malé Slovo Počet sa 656 a 598 i 427 v 375 na 322 co 271 to 254 si 245 len 201 tak 195 Všetky znaky malé Počet slov výskytov 8727 1 1805 2 691 3 326 4 190 5 137 6 83 7 75 8 38 11 38 9 38 10 Aj veľké znaky Slovo sa a v i na si co to s len Počet 656 440 362 352 303 242 232 214 182 172 Aj veľké znaky Počet slov výskytov 9153 1 1854 2 704 3 355 4 191 5 137 6 94 7 66 8 38 11 37 9 36 10 11
Ukážka práce so systémom Hive – Orientovaný acyklický graf vykonávania „SQL“ • EXPLAIN SELECT freq, COUNT(1) AS f 2 FROM zena GROUP BY freq SORT BY f 2 DESC; – ABSTRACT SYNTAX TREE: – (TOK_QUERY (TOK_FROM (TOK_TABREF zena)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL freq)) (TOK_SELEXPR (TOK_FUNCTION COUNT 1) f 2)) (TOK_GROUPBY (TOK_TABLE_OR_COL freq)) (TOK_SORTBY (TOK_TABSORTCOLNAMEDESC (TOK_TABLE_OR_COL f 2))))) – – STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 Stage-0 is a root stage –. . WIKT 2010 Bratislava, 11 -12. 11. 2010 12
Ukážka práce so systémom Hive – Ukážka na príkaz JOIN • hive> CREATE TABLE spojena (word STRING, ezo_f INT, zena_f INT); • hive> INSERT OVERWRITE TABLE spojena SELECT e. word, e. freq, z. freq FROM ezo e JOIN zena z ON (e. word = z. word); – Ktoré slovo sa najčastejšie vyskytuje v obidvoch dielach spolu • hive> SELECT word, ezo_f, zena_f, (ezo_f + zena_f) AS s FROM spojena SORT BY s DESC LIMIT 10; Všetky znaky malé Aj veľké znaky Slovo Počet slov Ežo Počet slov Žena Počet slov spolu sa a V i na co jak to len tak 656 598 375 427 322 271 118 254 201 195 970 865 809 521 535 347 432 248 242 238 1626 1463 1184 948 857 618 550 502 443 434 sa a v na i co jak to si z 656 440 362 303 352 232 113 214 242 158 970 742 786 499 420 281 381 214 166 249 1626 1182 1148 802 772 513 494 428 407 WIKT 2010 Bratislava, 11 -12. 11. 2010 13
Záver • Predstavili sme dátové skladisko Hive nad architektúrov Map. Reduce (Hadoop) • Existujúce riešenia – – – Pig (Yahoo!) Sawzall (Google) JAQL (IBM) Scope (Microsoft) YAML Map. Reduce (Greenplum) • Ďalšie funkcie systému Hive – Delenie na partície – Delenie na sektory (podľa hash) WIKT 2010 Bratislava, 11 -12. 11. 2010 14
Záver Ďakujem za pozornosť Otázky? WIKT 2010 Bratislava, 11 -12. 11. 2010 15
- Slides: 15