220 likes | 354 Views
Distribuované a cloud počítanie a jeho využitie v úlohách analýzy / spracovania dát. Martin Sarnovsk ý. Obsah. MapReduce Hadoop GridGain Mahout Mavuno JBOWL+ GridGain. Grid/Cloud Computing.
E N D
Distribuované a cloud počítanie a jehovyužitie v úloháchanalýzy/spracovaniadát Martin Sarnovský
Obsah MapReduce Hadoop GridGain Mahout Mavuno JBOWL+ GridGain
Grid/Cloud Computing Cloud computing – provision of dynamically scalable and often virtualized resources as a services over the Internet on a utility basis Grid: 2 aleboviacpočítačovpracujúcichparalelne Grid Computing: Výpočtový Grid + Data Grid Cloud: Data Center Virtualization Cloud Computing: Cloud + Grid Computing
Google Map/Reduce architektúra • Základný model – 2 funkcie • Map: Vstupom je súbordát, výstupomasociatívnepole (prvkyniesúindexovanépodľapostupnosticelýchčísel, ale pomocoukľúčov) typu: kľúč/hodnota • Reduce: Vstupom je výstup z funkcie Map a výstupom je asociatívnepole typu: kľúč/hodnota, pričomplatí, žepolia s rovnakýmikľúčmisúspracovávanénajednomuzle • Rozšírenýmodel (navyšeoprotizákladnému) • Combine: Po dobehnutífunkcie Map spustílokálnefunkciuReduce • Partition: Metóda, ktorábudezodpovednázarozkúskovanievstupnýchdátnamenšiebloky • Programátornemusípoznaťspôsobakýmrámecdistribuujevýpočty
CieleMapReduce • 1. Škálovateľnosť • Rádovotisícezariadení, desiatkytisícovdiskov • 2. Efektivitanákladov • “Commodity machines” (lacné, nespoľahlivé) • Dvojjadrové x86 procesory, 2-4GB RAM, disky IDE • Štandardnásieť (100Mb/s) • Cluster rádovostovky/tisícepracovnýchstaníc • Automatickériešeniezlyhaní • Jednoducháimplementácia
Map/Reduce v Googli • • 80% úloh je spúšťanýchna Map/Reduce architektúre – Tvorbaindexov pre Google Search – Klastrovaniečlánkov pre Google News – Spracovávaniesatelitnýchsnímkov pre Google Maps – Spracovaniejazykovýchmodelov (štatisticképrekladanie) Google Translate • Motivácia: • Amazon: 100ms latenciastojí 1% celkovýchpredajov • Google: 500ms latenciazníženietrafficu 20%
Hadoop • Hadoopprojekt - štart 2004 • SpravovanékomunitouApache Software Foundation, top level Apache projekt • Framework pre vývojaplikáciíbežiacichnaclusteroch (“commodity hardware”) • Základnékomponenty • ImplementujeMapReduce model (spracovanieúloh) • Poskytuje distribuovan0 dátovéúložiskoHadoop’s Distributed File System – HDFS • Hadoop cluster – • Master node – JobTracker, TaskTracker, NameNode, DataNode • Worker node – Task Tracker, DataNode
Hadoop – HDFS • HDFS – uchovávaťveľmiveľkédátanauzloch v clusteri • 1 namespace pre cluster • Každýsúbor – sekvenciablokov, replikovaných, 3x (fault tolerance) • NameNode (master, spravuje namespace, kontrolujeprístupy, mapujeblokyna data nodes) • DataNodes
Hadoop - MapReduce • Map/Reduce • Spracovávadáta tam, kdesú • Fault tolerance – akuzolzlyhá, úlohyjemupriradenésuredistribuovanémedzizostávajúceuzly • JobTracker • spustísaproces s Map a Reduce metódami • PridelípotrebnémnožstvoTaskTrackers
GridGain • Open Source Java-Based Cloud Platform • Integruje Data Grid, Computing Grid, Big Data • Podpora Java, Scala, Groovy • 2 distribúcie: • Community Edition: Licencia: GPLv3 + základnéfunkcionality • Enterprise Edition: Komerčnélicencie + Enterprise funkcionality
GridGain (2) • Implementácia In-Memory MapReduce • Zero Deployment • Peer-to-Peer On-Demand Class Loading technology • Nie je nutnéspúšťaniežiadnych Ant scriptov • Nie je nutnékopírovať JAR-súbory, alebopoužívať FTP/GFTP • Nie je potrebnýreštartuzlov • Jednotlivéuzly je možné: • Spustit v rámcijednej JVM (možnosťlokálnevyvíjať/debugovať) • Spustiťuzly v rámcisamostatného PC • Load Balancing (Job Stealing) • FaultTolerance
GridGain (3) GridTask -> GridJob GridJobsnamapované a rozposlané na uzly – split() GridJobResults agregované GridTask-om do výsledku – reduce()
Hadoop vs. GridGain Hadooppracuje s veľkýmidátami (100 TB/job) - HDFS GridGain -> in memory -> limit veľkosť JVM heap-u Rozdiel v implementáciiMapReduce GridGainnedisponujedistribuovanýmfilesystemom (možnosťintegrovať s HDFS a Hadoop)
Mahout • Scalable machine learning library • HadoopMapReduceimplementáciealgoritmovstrojovéhoučenia • Robustné, škálovateľnéimplementáciealgoritmov • Mahout Clustering • Implementovanéalgoritmy: K-Means,Fuzzy K-Means • MahoutClassification • Naïve Bayes • Random Forests • LogistickáRegresia • Support Vector Machines • JDK 1.6, Ant 1.7, Lucene, Hadoop 0.22 • Príklady – budovanieodporúčaciehomechanizmu
Mavuno • Opensource, modulárny, škálovateľný text mining toolkit postavenýnaHadoop • Podporuje • úlohy NLP (Natural language processing), • large-scale distributional similarity • Information extraction
JBOWL + GridGain • VyužitieGridGainrámca pre úlohy text miningu (JBOWL) • Predspracovanie/vytváraniemodelov/vizualizácia/evaluácia • MapReduceimplementácieklasifikačných a zhlukovacíchalgoritmov • C4.5 stromy • k-NN • GHSOM • Boosting
Administrátorské/monitorovacierozhranie • Monitorovaniestavuzapojenýchuzlov • Monitorovaniezaťaženiauzlov • Reštartovanieuzlov • Vypínanie/zapájanieuzlovnadiaľku • Data grid • Uploadovanie/odstráňovaniesúborov s dátami • Vizualizáciaštatistík