Prezentácia programu PowerPoint

Podobné dokumenty
Microsoft Word - 11_Distribuované spracovanie dát nad MapReduce architektúrou _Hadoop a Hive_

Funkcionálne programovanie Cvičenie 9 Funkcionálne programovanie v Jave Sergej Chodarev 22. november 2017 Technická Univerzita v Košiciach

PowerPoint Presentation

enum

Identity Lifecycle Management

História

Algoritmizácia a programovanie - Príkazy

Microsoft PowerPoint - OOP_prednaska_10.pptx

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II Obsah 1. Export údajov ZBGIS do CAD formá

Objektovo orientované programovanie

PowerPoint Presentation

Identity Lifecycle Management

DediĊnosť

Snímka 1

Identity Lifecycle Management

iot business hub whitepaper isdd_em_New.pdf

SAEAUT SNMP OPC Server

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

Microsoft Word - RolyRiadeniaZmien_V1.doc

NSK Karta PDF

Úvod do mobilného operačného systému ANDROID

Prezentácia programu PowerPoint

Matej Kendera - PDF, word, lucene, java

Snímka 1

gis5 prifuk

SPRINT 2

Princípy tvorby softvéru Programovacie paradigmy

User:Andrej Sedlacek

Študijný program (Študijný odbor) Školiteľ Forma štúdia Téma Elektronické zbraňové systémy (8.4.3 Výzbroj a technika ozbrojených síl) doc. Ing. Martin

Paralelné algoritmy, cast c. 2

7/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min

Microsoft Word - 06b976f06a0Matice - Uzivatelska Dokumentacia

Tomáš Jelínek - včely vyhľadávanie

Algoritmizácia a programovanie - Štruktúrované údajové typy

MO_pred1

midterm2014_1

Snímka 1

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Metodika archivácie verzií HW Tímový projekt Stratos FIIT M

Virtualizacia Meranie výkonnosti vo virtualizovanom prostredí Spracoval: Patrik Tomajko 2 nd December 2009

13/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min 1. Daná je databáza (bez duplikátov a null hodnôt): capuje(krcma, Alkohol), lubi(pijan,

User:Michal.Palcek

ECDL Syllabus V50 SK-V01

OPIdS - finančné riadenie

PowerPoint Presentation

Inteligentné rozhodovacie systémy Heuristické prehľadávanie SP Október, 2018 Katedra kybernetiky

Architektúra a návrh Zdôvodnenie navrhnutej architektúry Systém si architektonicky môžeme rozdeliť na viacero vrstiev. Najpodstatnejšie je oddelenie z

Relačné a logické bázy dát

Siete vytvorené z korelácií casových radov

midterm2019

Detekcia akustických udalostí v bezpečnostných aplikáciách

Snímka 1

5/1/2012 Úvod do databáz, skúškový test, max 25 bodov, 90 min 1. Daná je databáza: capuje(krcma, Alkohol, Cena), lubi(pijan, Alkohol) navstivil(idn, P

MOTIVAČNÝ DOKUMENT TÍMOVÝ PROJEKT TÍM Č. 21 GROMA Matej HORVÁTH Matej JURKÁČEK Peter KAMENSKÝ Jozef KŇAZE Adam MACKOVÁ Kristína PEJCHALOVÁ Lenka SEDLÁ

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

Microsoft PowerPoint - SLIDES_02DTD.ppt

A51

Snímka 1

Ness Technologies, Inc. Česká republika

Informačná a modelová podpora pre kvantifikáciu prvkov daňovej sústavy SR

User:tomas.melicher

web2_infos

STRUČNÝ NÁVOD KU IP-COACHU

Dobývanie znalostí

Microsoft Word - prirucka_katedry_nova

Datasheet

Digitálne mesto kam smerujú elektronické služby a moderné technológie pre samosprávu Ing. Ľuboš Petrík

Konkurentné programovanie

SMART_GOVERNANCE_Ftacnik

PowerPoint Presentation

eKasa

TRENČÍN 1. mesto na Slovensku s komunikáciou s obyvateľmi využívajúcu A.I.

Manažment v Tvorbe Softvéru 2018/2019

1

PowerPoint Presentation

Rozdeľovanie IT zákaziek UX Peter Kulich

Microsoft Word - HANDZAK.DOC

Style Sample for C&N Word Style Sheet

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY IMPLEMENTÁCIA DISTRIBUOVANÉHO MONITOROVACIEHO SYSTÉMU BAKALÁRSKA PRÁCA 201

MO_TČOZ_TLY_2018_2019

PowerPoint Presentation

Microsoft Word - 18.doc

Prezentácia programu PowerPoint

Vývoj geografických aplikácií v GIS

Slovenská technická univerzita v Bratislave

Výnimky

Hospodarska_informatika_2015_2016a

Šablona dokumentu

Princípy tvorby softvéru Modelovanie domény

Pomôcka Setup Používateľská príručka

6

Spustenie založenej VM mimo vmware ESX

Mikrotik-NEW

p r e d s tav e n i e s p o l o č n o s t i

s sol

Matematický model činnosti sekvenčného obvodu 7 MATEMATICKÝ MODEL ČINNOSTI SEKVENČNÉHO OBVODU Konečný automat predstavuje matematický model sekvenčnéh

Microsoft Word - VI xfilcakt.docx

IAB budicek - Branding Landscape & Research options_FINAL_Gregor.pptx

03_ControlFlow.dvi

Cieľové požiadavky na vedomosti a zručnosti pri maturitnej skúške skupiny odborov 25 Informačné a komunikačné technológie Všeobecné - cieľové požiadav

Prepis:

Algoritmy pre rozsiahle dáta Michal Prílepok 27. septembra 2017 Katedra informatiky Fakulta elektrotechniky a informatiky Vysoká škola báňská Technická univerzita Ostrava

MapReduce/ Hadoop

MapReduce

MapReduce Programovací model a softvérový framework (infraštruktúra) vyvinutý spoločnosťou Google, určený na spracovanie rozsiahlych dát pomocou paralelných a distribuovaných algoritmov. Jerey Dean and Sanjay Ghemawat. MapReduce: Simplified data processing on large clusters. In Proceedings of the 6th Symposium on Operating System Design and Implementation (OSDI 2004), pages 137-150, San Francisco, California, 2004. Jerey Dean and Sanjay Ghemawat. MapReduce: Simplified data processing on large clusters. Communications of the ACM, 51(1):107-113, 2008. Jerey Dean and Sanjay Ghemawat. MapReduce: A flexible data processing tool. Communications of the ACM, 53(1):72-77, 2010.

Cieľom frameworku je zjednodušiť paralelné spracovanie rozsiahlych dát na veľkých výpočtových klastroch pozostávajúcich z bežne dostupného hardvéru, tak by bola zaistené spoľahlivosť a odolnosť voči chybám a výpadkom architektúry. Peta bajty dát Tisícky uzlov Spracovanie štruktúrovaných a neštruktúrovaných dát.

Poskytuje Automatickú paralelizáciu a distribúciu výpočtov. Ľahké rozširovanie architektúry. Plánovanie I/O operácií. Vyrovnávanie záťaže. Optimalizácia sieťových a dátových prenosov. Ochrana pred zlyhaním SW a HW. Ochrana pred stratou dát.

Tento prístup využíva prístup rozdeľ a panuj na distribúciu extrémne rozsiahlych problémov na extrémne veľkom počte výpočtových uzlov. Algoritmus MapReduce pozostáva z 2 hlavných úloh Map a Reduce. Map konvertuje vstupné dáta na dáta na formát klúč/ hodnota. Reduce výstup z úlohy Map spája medzivýsledky Map úloh do požadovaného výstupu.

Programovací model

Tok dát 1. Načítanie vstupu načítanie a rozdelenie vstupu na vhodné úseky dát, typicky 64/ 128MB a priradenie Map funkcie vygeneruje páry kľúč hodnota typicky distribuovaný súborový systém 2. Map funkcia vstupov je postupnosť párov kľuč/ hodnota a spracuje ich na výstupné páry kľúč hodnota vstupný a výstupný formát je často odlišný 3. Reduce funkcia Vygeneruje výstup 4. zápis výstupu

Príklad Spočítanie frekvenčného výskytu mien študentov Map() Filtrovanie, usporiadanie Usporiadania študentov podľa mena do front, jedna fronta pre každé meno Reduce() Vykonáva výslednú operáciu sumarizácie Spočítanie študentov v jednotlivých frontách, poskytnutie počtu výskotov pre každé meno

Tok dát (2)

Príklad 2 function map(string name, String document): // name: document name // document: document contents for each word w in document: emit (w, 1) function reduce(string word, Iterator partialcounts): // word: a word // partialcounts: a list of aggregated partial counts sum = 0 for each pc in partialcounts: sum += pc emit (word, sum)

MapReduce Hadoop Program fork fork fork Input Data assign map Master assign reduce Output Data Split 0 Split 1 Split 2 Transfer read petascale data through network Worker Worker Worker Map local write remote read, sort Worker Worker Reduce write Output File 0 Output File 1 16

GFS Proprietárny distribuovaný súborový systém Vyvinutý spoločnosťou Google Poskytuje efektívny prístup k dátam ma bežnom HW

GFS Skladá sa z Master node Chunk servers Každý súbor je rozdelený na bloky pevnej dĺžky Bloky dát sú uložené na chunk serveroch Každý blok je replikovaný niekoľko krát na iných chunk serveroch, minimálne 3 krát

GFS Master node Neukladaná dáta, obsahuje iba meta dáta o jednotlivých blokoch dát Riadi I/O operácie nad dátami Prijíma Heart-beat messages od chunk serverov

GFS

GFS Architektúra 22

Write operácia 23

PayLoad Aplikácia implementujúca Map a Reduce funkcie, vytvára tzv. Job. Mapper - Mapper mapuje vstupné kľúč/ hodnota páry na množinu medzi výsledkov vo forme kľúč/ hodnota párov. NamedNode Uzol riadiaci distribuovaný súborový systém Distributed File System (HDFS). DataNode Uzol na ktorý sú dáta uložené v predstihu pred ich spracovaním. MasterNode Uzol, na ktorom JobTracker spúšťa a prijíma jednotlivé úlohy od klientov. SlaveNode Uzol na ktorom sú spúšťané Map a Reduce programy. JobTracker Plánuje a prideľuje úlohy jednotlivým Task tracker-om. Task Tracker Sleduje stav a spracovanie úloh a reportuje ich stav JobTracker-u. Job Spustený program s implementovaným funkciami Map a Reduce nad dátami. Task Spustený program s funkciami Map a Reduce nad časťou dát. Task Attempt Konkrétna inštancia spustenej úlohy na SlaveNode uzle.

Implementácie: OpenSource Hadoop. Komerčné Cloudera.

Využitie MapReduce Google: Index building for Google Search Article clustering for Google News Statistical machine translation Yahoo!: Index building for Yahoo! Search Spam detection for Yahoo! Mail Facebook: Data mining Ad optimization Spam detection

Hadoop

Hadoop Framework, ktorý umožňuje distribuované spracovanie rozsiahlych dát na rozsiahlom počet výpočtových uzlov s použitím jednoduchých programovacích modelov. Obsahuje: HDFS (Hadoop Distributed File System) distribuovaný súborový systém. Hbase databázu. Hive SQL rozhranie na prehliadané dát. Pig platforma na vytváranie MapReduce programov.

Hadoop základné myšlienky Aplikácie sú písané v jazyku vyššej úrovne. Odpadá riešenie problémov s komunikáciou, výmenou dát. Jednotlivé uzly komunikujú čo najmenej. Vývojár by nemal písať kód na komunikáciu medzi jednotlivými uzlami. Dáta sú uložené do jednotlivých uzlov v predstihu. Výpočet prebieha na uzle, kde sú dáta uložené a kde je to možné. Dáta sú replikované do viacerých uzlov, aby sa zvýšila dostupnosť a spoľahlivosť.

Dáta sú rozdelené do blokov, zvyčajne 64 alebo 128MB. Hlavný program alokuje prácu jednotlivým uzlom. Viaceré uzly pracujú paralelne, každý na svojom bloku dát. Ak zlyhá uzol, master deteguje chybu a pridelí úlohu na iný. Reštartovanie úlohy nevyžaduje komunikáciu s inými uzlami pracujúcimi na iných blokoch dát. Ak jeden z uzlov pracuje pomaly, master môže redundantne spustiť rovnakú úlohy na inom uzle. Výsledky prvej dokončenej úlohy budú použité.

Hadoop ekosystém

Hadoop Distributed File System (HDFS) Súborový systém navrhnutý na výkonnosť a spoľahlivosť na obrovské dátové sady. Inšpirovaný Google File System. Napísaný v Jave. Ukladá veľké súbory na viacerých uzloch. Skladaná sa name node a data nodes Name node - centrálny uzol súborového systému Data node - obsahuje bloky dát Dáta sú uložené v 3 data nodes. Jednotlivé data node môžu medzi sebou komunikovať presúvanie, kopírovanie dát

ApacheHBase Nerelačná distribuovaná databáza. Vychádza z Goole BigTable. Podporuje kompresie a in-memory operácie. Tabuľky HBase databázy môžu byť použité ako vstup a výstup MapReduce úloh. Využíva Facebook Messaging Platform.

Apache Hive Framework umožňujúci sumarizáciu dát, spracovanie požiadaviek a analýzu. Vyvinutý spoločnosťou Facebook. Umožňuje: prácu s dátami pomocou HiveQL, jazyk založený na SQL, prácu s komprimovanými dátami. Vývoj podporujú spoločnosti ako Netflix, Amazon.

Pig platforma na vytváranie MapReduce programov. Programovací jazyk vyššie úrovne. Vývojári sa nestarajú o sieťové programovanie, časové závislosti,... Abstraktný programovací jazyk Pig Latin. Vyvinutý spoločnosťou Yahoo (2006).

WordCount 2 vstupné súbory: file1: hello world hello moon file2: goodbye world goodnight moon 3 operácia: Map Combine Reduce

WordCount Map File1 File2 < hello, 1 > < goodbye, 1 > < world, 1 > < world, 1 > < hello, 1 > < goodnight, 1 > < moon, 1 > < moon, 1 > Combine < moon, 1 > < goodbye, 1 > < world, 1 > < world, 1 > < hello, 2 > < goodnight, 1 > < moon, 1 > Reduce < goodbye, 1 >, < goodnight, 1 >, < moon, 2 >, < world, 2 >, < hello, 2 >

public int run(string[] args) { - Create a new job with the given configuration - Set Job Output as <key.class, value.class> as <Text, IntWritable> - Set Job Input as <key.class, value.class> as <TextInputFormat, TextOutputFormat> - Tell Job to use our Map as Mapper class - Tell Job to use our Reduce as Combiner class - Tell Job to use our Reduce as Reducer class - Set file input paths - Set file output paths in the Job - Wait until Job is done - Return success if successful }

public int run(string[] args) { Job job = new Job(getConf()); job.setjarbyclass(wordcount.class); job.setjobname( wordcount ); job.setoutputkeyclass(text.class); job.setoutputvalueclass(intwritable.class); job.setmapperclass(map.class); job.setcombinerclass(reduce.class); job.setreducerclass(reduce.class); job.setinputformatclass(textinputformat.class); job.setoutputformatclass(textoutputformat.class); FileInputFormat.setInputPaths(job, new Path(args[0])); FileOutputFormat.setOutputPaths(job, new Path(args[1])); boolean success = job.waitforcompletion(true); return success? 0 : 1; }

public static class Map extends Mapper { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(longwritable key, Text value, Context context) { String line = value.tostring(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasmoretokens()) { word.set(tokenizer.nexttoken()); context.write(word, one); } } }

File1 File2 < hello, 1 > < goodbye, 1 > < world, 1 > < world, 1 > < hello, 1 > < goodnight, 1 > < moon, 1 > < moon, 1 >

Combine Určuje ako sa budú spájať jednotlivé páry kľúč/ hodnota pre miestnu agregáciu.

< moon, 1 > < goodbye, 1 > < world, 1 > < world, 1 > < hello, 2 > < goodnight, 1 > < moon, 1 >

public static class Reduce extends Reducer { public void reduce(text key, Iterable values, Context context) { int sum = 0; for (IntWritable val : values) { sum += val.get(); } context.write(key, new IntWritable(sum)); } }

< goodbye, 1 >, < goodnight, 1 >, < moon, 2 >, < world, 2 >, < hello, 2 >

Pig Platforma na vytváranie MapReduce programov vo vyššie abstraktného programovacieho jazyka Vyvinutý spoločnosťou Yahoo (2006) Formát jazyka je podobný zápisu SQL jazyka Môže byť rozšírený pomocou užívateľom definovaných funkcií (UDF) napísaných v jazykoch Java, Python, JavaScript, Ruby alebo Groovy

Word Count - Pig input_lines = LOAD '/tmp/my-copy-of-all-pages-on-internet' AS (line:chararray); -- Extract words from each line and put them into a pig bag -- datatype, then flatten the bag to get one word on each row words = FOREACH input_lines GENERATE FLATTEN(TOKENIZE(line)) AS word; -- filter out any words that are just white spaces filtered_words = FILTER words BY word MATCHES '\\w+'; -- create a group for each word word_groups = GROUP filtered_words BY word;

Word Count (2) -- count the entries in each group word_count = FOREACH word_groups GENERATE COUNT(filtered_words) AS count, group AS word; -- order the records by count ordered_word_count = ORDER word_count BY count DESC; STORE ordered_word_count INTO '/tmp/number-of-words-oninternet';