Technológie spracovania Veľkých dát TSVD 8. Peter Bednár, Martin Sarnovský

Similar documents
Comparison between Apache Flink and Apache Spark

Presenter SNP6000. Register your product and get support at SK Príručka užívateľa


PMU Big Data Analysis Based on the SPARK Machine Learning Framework

making them (robots:) intelligent

Ing. Michal Čerňanský, PhD. Fakulta informatiky a informačných technológií, STU Bratislava

Prednáška. Vypracoval: Ing. Martin Juriga, PhD. Bratislava, marec 2016

CHARAKTERISTICKÉ VLASTNOSTI SAMO - REKONFIGUROVATEĽNÝCH ROBOTOV

Flink 3. 4.Butterfly-Sql 5

Apache Spark Performance Troubleshooting at Scale: Challenges, Tools and Methods

Exactly-once Delivery. Ján /

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ. Vizualizácia dát. Ing. Ladislav Ruttkay

Transactions of the VŠB Technical University of Ostrava, Mechanical Series. article No Štefánia SALOKYOVÁ *

A NOVEL BIG DATA ARCHITECTURE IN SUPPORT OF ADS-B DATA ANALYTIC DR. ERTON BOCI

Python in Hadoop Ecosystem Blaze and Bokeh. Presented by: Andy R. Terrel

Big Data Framework for Synchrophasor Data Analysis

RFSA-62B/24V % % % 0-10 % % brick walls. tehlové steny

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA ELEKTROTECHNIKY A INFORMATIKY SIMULÁCIA HYBRIDNÝCH ARQ SCHÉM PRE LTE

Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCE

HEP Data Processing with Apache Spark. Viktor Khristenko (CERN Openlab)

R L C LED ESL % % % 0-10 % % brick walls. tehlové steny

PREHĽAD ZARIADENÍ FACTS Z POHĽADU SEKUNDÁRNEJ REGULÁCIE ES OVERVIEW OF THE MOST COMMONLY USED FACTS CONTROLERS IN SVC OF A POWER SYSTEM

Powered Loudspeaker Manuál

Watermarking spustiteľného kódu

Žilinská univerzita v Žiline Elektrotechnická fakulta Katedra telekomunikácií a multimédií. Možnosti prenosu dát po energetických sieťach

VIZUALIZÁCIA POMOCOU POČÍTAČA VO VÝUČBE NAJMLADŠÍCH EDUKANTOV VISUALIZATION WITH COMPUTER IN TEACHING THE YOUNGEST LEARNERS.

RED GREEN BLUE RED GREEN BLUE V DC % % % 0-10 % % brick walls. tehlové steny

RFSA-11B, RFSA-61B EN

Intel Big Data Analytics

Clarifying and Assisting Smart Manufacturing Standardization with URM-MM

Aplikácia systémov hromadnej obsluhy v IP sieťach

GSM / ANALÓG. VRÁTNIK

Challenges in Transition

What s your favourite place?

databázy pre stredné školy

Multi-Axis Machine Tool Power Drives Exploitation

Sborník vědeckých prací Vysoké školy báňské - Technické univerzity Ostrava číslo 1, rok 2008, ročník LIV, řada strojní článek č.

Cenník osiva slnečnice a ciroku pre rok 2013

Genetické algoritmy v hrách

VYUŽITIE KUNDTOVEJ TRUBICE PRI MERANÍ AKUSTICKÝCH PARAMETROV RECYKLOVANÝCH MATERIÁLOV

Prenosný Bluetooth reproduktor

Erasmusplus KA1 Mobilita pracovníkov/zamestnancov v oblasti školského vzdelávania Slovenská akademická asociácia pre medzinárodnú spoluprácu

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Vplyv binaural beats na kapacitu pracovnej pamäte

Monitorovanie sietí na rýchlosti 100 Gb/s

ŽILINSKÁ UNIVERZITA V ŽILINE

Transactions of the VŠB Technical University of Ostrava, Mechanical Series No. 2, 2009, vol. LV, article No Ivana LUKÁČOVÁ *, Ján PITEĽ **

SDS PODCAST EPISODE 51 WITH RANDAL SCOTT KING

SMALL BLIND (SB), BIG BLIND (BB)

KYBERTEXT. ERGODICKÁ LITERATÚRA

Žilinská univerzita v Žiline Elektrotechnická fakulta Katedra telekomunikácií

Prohledávání do hloubky (DFS) rekurzivně

8. prednáška ( ) Sieťová vrstva 3.časť

DESIGN AND IMPLEMENTATION OF SOFTWARE SUPPORT FOR BIOMETRICS LABORATORY COURSES

Vizuálna analýza dát Bakalárska práca

Abstrakt. Abstract. Kľúčové slová zvuková syntéza, reálny čas, zásuvný modul, spracovanie zvukových signálov, komunikačný protokol MIDI

Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky. Evolvovanie riadenia pohybu mobilného robota v neznámom prostredí

BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY

EPISODE 809 [00:00:00] JM

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

PODĽAHNITE KÚZLU DREVA SKLADOVÁ KOLEKCIA

Vizualizácia dynamiky programu napísaného v jazyku C#

Abiotické a biotické faktory prostredia. Mgr. Alžbeta Futáková

Evolučný návrh robotických organizmov

CV-7438nDM Quick Installation Guide

MONITOR (D) na samotnej karte je zakódovaný PIN a výška limitu na výber, on-line pripojenie na bankovú sieť nie je potrebné.

Big Data Processing and Visualization in the Context of Unstructured data set

PREČO BY MAL MANAŽÉR RIZÍK BYŤ NAJMÄ MANŽÉROM ĽUDSKÝCH ZDROJOV

NÁVRH POLOHOVACÍHO ZARÍZENÍ MALÉ KAMERY DESIGN OF THE POSITIONING DEVICE FOR SMALL CAMERAS

GNSS PRE PILOTOV VŠEOBECNÉHO LETECTVA

W o rk Package 4 A IS data

KRIŢOVATKA RIADENÁ POMOCOU PLC

SCAI SuperComputing Application & Innovation. Sanzio Bassini October 2017

The Power of Choice in! Data-Aware Cluster Scheduling

Modul:PROGRAMOVANIE. KonzorciumHlavavoblakoch. 25.apríla2018

E-LOGOS. vesmírnych civilizácií. Robert Burgan ELECTRONIC JOURNAL FOR PHILOSOPHY ISSN /2012. University of Economics Prague

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

ANGULAR VIBRATION MEASUREMENTS OF THE POWER DRIWING SYSTEMS

TECHNICKÁ UNIVERZITA V KOŠICIACH FAKULTA ELEKTROTECHNIKY A INFORMATIKY KATEDRA ELEKTRONIKY A MULTIMEDIÁLNYCH TELEKOMUNIKÁCIÍ UMTS/IMT-2000

SKPOS NOT ONLY POSITIONING SERVICE R&D PROJECTS SUPPORTER

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

HP Deskjet F2400 All-in-One series. Pomocník systému Windows

Začíname tipovať. pomoc. Základné pojmy. našich bookmakerov pravdepodobnejší, tým je vypísaný

KONCEPCIA EMULÁTORA ENERGETICKÝCH SYSTÉMOV NA BÁZE DCS

DLHODOBÝ MONITORING MOSTNÝCH KONŠTRUKCIÍ OČAKÁVANIA A MOŽNOSTI

Lab Assignment. Lab 9: Hadoop Programs on Non-Synthetic Datasets. Assignment Preparation. Overview

KVANT-MAI. Measuring and Information Module..MH. electronic

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií BAKALÁŘSKÁ PRÁCE

YAESU FT DX POSTAVENÝ NA TRADÍCII

Transactions of the VŠB Technical University of Ostrava, Mechanical Series. article No. 1999

SIMULÁTOR PŘENOSOVÝCH FUNKCÍ SILNOPROUDÉHO VEDENÍ

PODMIENKY POSKYTOVANIA SLUŽBY BM

Technológia PLC (Power Line Communication)

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY

(1) DVD navigačný systém. Návod na použitie NVX-HC Sony Corporation

Kryptológia. Pragmatický pohľad. Martin Stanek október 2013

/ stalker New Task identifikovat akcie pre notifikacie a ich granularitu Samuel Molnár

Sériový prenos údajov

Introduction to Pandas and Time Series Analysis

Information Technology Applications / Aplikácie informacných technológií.

Transcription:

TSVD 8 Technológie spracovania veľkých dát Peter Bednár,

Nedostatky MapReduce + Hadoop MapReduce častokrát využívané v úlohách spracovania veľkého množstva dát na klastroch Postavené na acyklických dátových tokoch neefektívne pri aplikáciách, ktoré opakovane používajú rovnakú množinu dát: Iteratívne algoritmy (časté v úlohách strojového učenia) Interaktívne úlohy dolovania v dátach (R, Excel, Python) Snaha o presun výpočtov do pamäte, in-memory computing výpočty v pamäti, podpora cyklických dátových tokov Umožiť opakovane využívať množinu skôr použitých dát bez ich opätovného čítania z úložiska Ponechať niektoré vlastnosti použiteľné z MapReduce: Fault tolerance Data locality Škálovateľnosť 2

Použitie pamäte miesto disku 3

Apache Spark timeline 4

Spark platforma 5

Spark architektúra 6

Spark architektúra Každá Spark aplikácia pozostáva z Riadiaceho programu (Driver program) pozostáva z main funkcie a spúšťa sériu paralelných operácií na klastri (tasks) Aplikácia vytvára SparkContext, ktorý koordinuje riadiaci program - aplikácie bežia ako nezávislé skupiny procesov na uzloch klastra SparkContext špecifikuje ako, kde a kedy sa pristúpiť ku klastru, vie využiť niekoľko druhov Manažéra zdrojov (Cluster managerov) napr. YARN, Mesos, atď. Manažér zdrojov (Cluster manager) alokuje zdroje v klastri pre aplikáciu Priradí Executor-y na pracovných uzloch klastra, čo sú procesy, ktoré vykonávajú výpočty a ukladajú dáta Následne na ne odošle úlohy na vykonanie a Executor spustí úlohu Ak niektorý z pracovných uzlov zlyhá, úlohy budú priradené na iný Executor Po ukončení úloh je SparkContext ukončený z Riadiaceho programu a zdroje sú Manžérom zdrojov uvoľnené 7

Spark master Master parameter špecifikuje spôsob ako sa SparkContext spustí Master Parameter local local[k] spark://host:port mesos://host:port Popis Spustí Spark lokálne s jedným pracovným vláknom (žiaden paralelizmus) Spustí Spark lokálne s K pracovnými vláknami (ideálne ak K = počet jadier) Pripojenie na Spark klaster; PORT v závislosti od konfigurácie (7077 by default) Pripojenie na Mesos klaster; v závislosti od konfigurácie (5055 by default) 8

Spark model Spark dve hlavné abstrakcie pre paralelné programovanie RDD, ktoré slúžia na ukladanie a prenos dát a paralelné operácie na týchto dátach Resilient distributed datasets (RDD) primárna abstrakcia v Sparku Kolekcie objektov určené na čítanie, distribuované na zariadeniach naprieč klastrom RDD sú distribuované kolekcie, ale programátor k nim pristupuje ako k lokálnej premennej Používateľ môže RDD cache-ovať v pamäti, vďaka čomu môže na ne opätovne aplikovať paralelné operácie bez potreby znova čítať dáta z úložiska Tolerancia voči zlyhaniam obsahujú informácie o spôsobe ako boli vytvorené, preto môžu byť znovuvytvorené, keď je niektorá z častí stratená (zlyhaním uzla) Sú vytvárané a modifikované transformovaním dát z úložísk použitím operácií (map, filter, group-by, atď.) 9

Paralelizácia RDD 10

Tvorba RDD Spark umožňuje zostrojiť RDD niekoľkými spôsobmi: Zo súboru v lokálnom alebo vzdialenom súborovom systéme, napr. HDFS Paralelizovaním kolekcií v riadiacom programe, čo znamená ich rozdelenie na oddelené časti, ktoré sú odoslané na jednotlivé uzly klastra Transformovaním existujúceho RDD Datasety elementov typu A môžu byť zmenené na datasety s elementami typu B použitím Spark operácií. T Zmenou životnosti existujúcej RDD Implicitne RDD sú starnúce kolekcie. Partície datasetov sú materializované na žiadosť vo chvíli, keď sú použité v paralelných operáciách a sú odstránené z pamäte po použití. 11

RDD operácie Dva základné typy Spark operácií: Transformácie aplikujú sa na RDD vrátia transformované RDD Akcie aplikujú sa na RDD a vrátia výsledok Transformácie sú tzv. lazy (nie sú vypočítané okamžite) Transformované RDD sa vykonajú až keď sa na nich vykoná akcia RDD zostávajú v pamäti, alebo na disku 12

RDD akcie reduce(func) agreguje elementy RDD použitím funkcie func collect() vráti elementy RDD ako pole count() vráti počet elementov RDD first() vráti prvý element RDD take(n) vráti n prvých elementov RDD takesample(replacement, num, seed) vráti pole náhodného výberu n prvkov z RDD saveastextfile() ukladá elementy do súboru (lokálny súborový systém, HDFS) countbykey() pre RDD v tvare (key, value) vráti početnosti elementov podľa kľúča foreach(func) aplikuje funkciu func na každý element RDD 13

RDD Transformácie map(func) na každý element RDD aplikuje funkciu func filter(func) vráti RDD, kde elementy spĺňajú podmienku funkcie func (vráti true) flatmap(func) analogicky ako map, ale rozbalí vnorené objekty na jednu úroveň sample(replacement, fraction, seed) vracia časť vstupného RDD union(rdd2) vracia RDD ktoré vznikne zjednotením vstupného RDD s RDD2 intersection(rdd2) vráti prienik dvoch RDD distinct([numtasks]) vráti RDD s ostatnými elementami, ako ktoré sú špecifikované v parametri groupbykey([numtasks]) ak sa použije na RDD v tvare (key, value) vráti RDD zoskupené podľa kľúča (key, Iterable<value>) reducebykey(func, [numtasks]) vráti RDD v tvare (key, value), kde hodnoty sú agregované funkciou func sortbykey([ascending], [numtasks]) vráti zoradené RDD podľa kľúča join(rdd, [numtasks]) ak dva RDD sú (key, value1) a (key, value2), výsledné RDD potom bude (key, (value1, value2)) 14

Práca s RDD Vytvorenie RDD z dátového zdroja Aplikácia transformácií na RDD: napr. map Použitie operácií na RDD: napr. collect, count 15

Rozdiely Spark a MapReduce MapReduce Spark Úložisko Disk In-memory Operácie Map a Reduce Map, Reduce, Join, Sample Model vykonávania Batch Batch, micro-batch Prostredie Java Scala, Java, R, Python Zovšeobecnené patterny jednotný engine pre viacero prípadov použitia Lazy vykonávanie Redukuje prestoje, čakanie medzi akciami Nižšia cena komunikácie pri spúšťaní úloho 16

Spark SQL Spark knižnice Spark Streaming spracovanie prúdov dát MLlib knižnica strojového učenia GraphX knižnica pre grafové výpočty 17

Spark SQL Spark interface pre prácu so štruktúrovanými dátami Umožňuje načítavať dáta z rôznych zdrojov (napr. Hive, Parquet, JSON, JDBC a RDD) a formulovať SQL dopyty Integruje Spark (Java, Scala a Python API) a SQL SparkSQL pridáva operácie pre SQL dopytovanie 18

Spark SQL Dataset/DataFrames API Dataset distribuovaná kolekcia dát (interface od Spark 1.6 a vyššie, kombinuje RDD s Spark SQL enginom) DataFrame (dátový rámec) Dataset organizovaný do stĺpcov (konceptuálne ekvivalentný k tabuľke relačných databáz) Dátový rámec je možné vytvoriť zo: štruktúrovaných súborov (csv, json, parquet atď), Hive tabuliek, databáz (JDBC), alebo z RDD 19

Spark SQL SparkSQL API potom umožňuje: vykonávať operácie nad dátovými rámcami (prístup a operácie nad dátam podľa atribútov) pristupovať ku množine funkcií nad dátovými rámcami spúšťať SQL dopyty Výsledky jednotlivých operácií sú vrátené ako dátový rámec 20

Spark streaming Rozkúskovanie prúdu dát do malých dávok pozostávajúcich z okien časových okamihov (tzv. micro-batch processing) Spark potom považuje každú dávku dát ako RDD a spracuje ju použitím RDD operácií Nakoniec spracované výsledky RDD operácií budú vrátené v dávkach Možnosť kombinácie dávkového spracovania a spracovania prúdov dát jedným a tým istým systémom 21

Spark Streaming Diskretizované spracovanie dátových prúdov Hlavná abstrakcia - DStream (diskretizovaný stream) Zdroje základné: priamo dostupné zo StreamingContext API (stream zo súborov, socket) zdroje pomocou pripojených technológií ako napr. Kafka, Flume, Kinesis. Vyžadujú špecifické závislosti/nástroje. 22

DStream Hlavná abstrakcia Spark Streaming-u Reprezentuje kontinuálny prúd dát zo vstupného zdroja alebo prúd dát, ktorý vznikol jeho transformáciou Každý DStream je reprezentovaný ako sekvencia RDD 23

Spark Streaming Príjma dáta z rôznych zdrojov a preposiela ich do pamäte pracovných uzlov pre spracovanie 24

Spark Streaming Každý vstupný DStream má priradený Receiver Spark engine (optimalizovaný na nízku latenciu) spúšťa mnoho krátkych úloh na spracovanie mikro-dávok a produkuje výstupy Každá operácia aplikovaná na DStream sa transformuje na množinu operácií na jednotlivé RDD v DStreame 25

Spark Streaming Spark považuje každú dávku dát ako RDD To umožňuje spracovanie mikro-dávok Spark aplikáciami použitím RDD operácií vrátane rôznych knižníc (SparkSQL, GraphX, MLlib atď.) Nakoniec spracované výsledky RDD operácií budú vrátené v dávkach Veľkosť jednotlivých dávok je menej ako pol sekundy, latencia menej ako sekunda Možnosť kombinácie dávkového spracovania a spracovania prúdov dát jedným a tým istým systémom Úlohy sú prideľované dynamicky (podľa dostupnosti zdrojov a dát), čo zabezpečuje rovnomernú distribúciu úloh (a zaťaženia uzlov) v klastri 26

Práca s časovými oknami Spark Streaming poskytuje operácie pre tzv. window-based computations Umožňujú aplikovať operácie na na rôznych časových úsekoch dátového prúdu Špecifikujú sa 2 parametre: veľkosť posuvného okna dĺžka úseku interval posuvného okna interval, v ktorom sa majú jednotlivé operácie vykonávať 27

Operácie založené na časových oknách DStream transformovaný DStream okno v čase 1 - príklad 1 2 3 4 5 okno v čase 3 operácia nad časovým oknom okno v čase 5 Vždy, keď sa posunie okno na zdrojovom DStreame, všetky RDD, ktoré spadajú do daného okna sú spracované použitím danej operácie 28

Operácie založené na časových oknách window(dlzkaokna, dlzkaintervalu) countbywindow(dlzkaokna, dlzkaintervalu) reducebywindow(func, dlzkaokna, dlzkaintervalu) reducebykeyandwindow(func, dlzkaokna, dlzkaintervalu, [numtasks]) countbyvalueandwindow(dlzkaokna, dlzkaintervalu, [numtasks]) 29

Príklad Streaming wordcount Úloha spočítať výskyty slov v streame textov sc = SparkContext( local[2], StreamWordCount ) ssc = StreamingContext(sc, 1) lines = ssc.sockettextstream( localhost, 9999) words = lines.flatmap(lambda line:line.split( )) pairs = words.map(lambda word: (word, 1)) wordcounts = pairs.reducebykey(lambda x,y: x+y) 30

Príklad Streaming wordcount + posuvné okná Úloha každých 10 sekúnd spočítať výskyty slov v prúdoch textov za posledných 30 sekúnd sc = SparkContext( local[2], StreamWordCount ) ssc = StreamingContext(sc, 1) lines = ssc.sockettextstream( localhost, 9999) words = lines.flatmap(lambda line:line.split( )) pairs = words.map(lambda word: (word, 1)) windowedwordcounts = pairs.reducebykeyandwindow(lambda x,y: x+y, 30, 10) 31