Muppet: Gyors adatok MapReduce stílusú feldolgozása. Muppet: MapReduce-Style Processing of Fast Data

Hasonló dokumentumok
Hadoop és használata az LPDS cloud-on

Ismertető Wang Lam, Lu Liu, STS Prasad, Anand Rajaraman, Zoheb Vacheri és AnHai Doa n Muppet: MapReduce-Style Processing of Fast Data c.

Weblog elemzés Hadoopon 1/39

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

KORSZERŰ BIG DATA FELDOLGOZÓ KERETRENDSZEREK Hermann Gábor MTA-SZTAKI

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Virtuális Obszervatórium. Gombos Gergő

Felhők teljesítményelemzése felhő alapokon

RHadoop. Kocsis Imre Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

GENERÁCIÓS ADATBÁZISOK A BIG DATA KÜLÖNBÖZŐ TERÜLETEIN

MapReduce paradigma a CAP-tétel kontextusában. Adatb haladóknak. Balassi Márton Adatbázisok haladóknak 2012.

Operációs rendszerek. UNIX fájlrendszer

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

Számítógépes Hálózatok. 5. gyakorlat

API tervezése mobil környezetbe. gyakorlat

A tanulmány Klaus Berberich és Srikanta Bedathur Computing n-gram Statistics in MapReduce cikkét dolgozza fel.

BIG DATA ÉS GÉPI TANULÁS KÖRNYEZET AZ MTA CLOUD-ON KACSUK PÉTER, NAGY ENIKŐ, PINTYE ISTVÁN, HAJNAL ÁKOS, LOVAS RÓBERT

Hitelesítés elektronikus aláírással BME TMIT

és DKIM. Kadlecsik József MTA Wigner Fizikai Kutatóközpont ISZT 2018, Budapest

Big Data: a több adatnál is több

9. MPI

Takács Gábor mérnök informatikus, okl. mérnöktanár

Vodafone ODI ETL eszközzel töltött adattárház Disaster Recovery megoldása. Rákosi Péter és Lányi Árpád

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 5.ELŐADÁS. Sütik és munkamenetek kezelése

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Felhasználók hitelesítése adatbiztonság szállításkor. Felhasználóknak szeparálása

Reaktív programozás szerver oldalon

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Hálózati operációs rendszerek II. Kötetek kezelése

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

JAVA SE/ME tanfolyam tematika

Web harvesztelés. Automatikus módszerekkel

Kommunikáció Androidon Mobilinternet Wifi

MySQL kontra MongoDB programozás. SQL és NoSQL megközelítés egy konkrét példán keresztül

A Feldspar fordító, illetve Feldspar programok tesztelése

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Iman 3.0 szoftverdokumentáció

SSL elemei. Az SSL illeszkedése az internet protokoll-architektúrájába

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Reader /Writer InputStreamReader, OutputStreamWriter

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, november 08.

Mozgásvizsgálati mérések internetes megjelenítése. Zemkó Szonja - Dr. Siki Zoltán

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Nem klaszterezett index. Klaszterezett index. Beágyazott oszlopok. Index kitöltési faktor. Indexek tulajdonságai

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Ez a megoldás azért is érdekes, hiszen jelenleg ma a mobil applikációk piacán ez egyedülállónak számít.

Listák, szótárak, fájlok Listák, szótárak, fájlok

GráfRajz fejlesztői dokumentáció

Bevezetés a párhuzamos programozási koncepciókba

MMK-Informatikai projekt ellenőr képzés 4


OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatbáziskezelés alapjai. jegyzet

Adja meg, hogy ebben az esetben mely handshake üzenetek kerülnek átvitelre, és vázlatosan adja meg azok tartalmát! (8p)

Component Soft és tovább

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Tipikus időbeli internetezői profilok nagyméretű webes naplóállományok alapján

Adatok ábrázolása, adattípusok

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

The Power To Develop. i Develop

Párhuzamos programozási platformok

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

A rendszer célja. Funkciók

Felhő demonstráció Gergely Márk MTA SZTAKI

Webes alkalmazások fejlesztése 11. előadás. Alkalmazások felhőben Giachetta Roberto

SQLServer. Probléma megoldás

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

BASH script programozás II. Vezérlési szerkezetek

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

.Net adatstruktúrák. Készítette: Major Péter

Mobil Informatikai Rendszerek

Hálózati WAN forgalom optimalizálása

Rendezések. Összehasonlító rendezések

Bevezető. Servlet alapgondolatok

Nem klaszterezett index. Beágyazott oszlopok. Klaszterezett index. Indexek tulajdonságai. Index kitöltési faktor

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Vonalkód olvasó rendszer. Specifikáció Vonalkód olvasó rendszer SoftMaster Kft. [1]

Tájékoztató. Használható segédeszköz: -

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

BEÁGYAZOTT RENDSZEREK TERVEZÉSE UDP csomag küldése és fogadása beágyazott rendszerrel példa

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Mobil Informatikai Rendszerek

Biztonságos mobilalkalmazás-fejlesztés a gyakorlatban. A CryptTalk fejlesztése során alkalmazott módszerek. Dr. Barabás Péter Arenim Technologies

Tájékoztató. Használható segédeszköz: -

MUMPS - a legfontosabb Adatbázis amiről (valószínűleg) soha nem hallott

Webcasting Editor Felhasználói kézikönyv és bemutató. A kapott Url -el valamint a kiadott felhasználónév jelszó párossal belépünk:

RDBMS fejlesztési irányok. Ferris Wheel (óriáskerék) Jim Gray törvényei. Elosztott adatbázisok problémái. Elosztott adatbázisok

Osztott algoritmusok

Algoritmusok és adatszerkezetek gyakorlat 07

Adatszerkezetek 1. Dr. Iványi Péter

Átírás:

Muppet: Gyors adatok MapReduce stílusú feldolgozása Muppet: MapReduce-Style Processing of Fast Data

Tartalom Bevezető MapReduce MapUpdate Muppet 1.0 Muppet 2.0 Eredmények

Jelenlegi tendenciák Nagy mennyiségű adat MapReduce Folyamatosan érkező adat (gyors adat)???

Gyors adat Folyamatosan érkezik Nagy mennyiség Minél hamarabb szeretnénk feldolgozni (lowlatency) Pl.: Twitter, Facebook, YouTube, Foursquare, Flickr, stb. Twitter: napi 400 millió tweet Foursquare: napi 5 millió checkin

MapReduce

MapReduce Programozási modell nagy adathalmaz feldolgozására Google Elosztott számítás sok gépen Alapja map és reduce függvények elosztott végrehajtása Sok implementáció, legismertebb: Apache Hadoop

Map és Reduce függvények Map(k1,v1) list(k2,v2) Paraméterek a kezdeti adat kulcsa és tartalma Eredmény elemek listája a reduce számára Reduce(k2, list (v2)) list(v3) Key szerint csoportosítva hívódik meg Azonos kulcsú értékek között számol

MapReduce Adat Master Map Map Map Map Map Map Reduce Reduce Eredmény

MapReduce példák Elosztott grep Megnyitott URL-ek összegzése Fordított web-link gráf egy URL milyen címekről érhető el Dokumentum indexelés Bizonyos szavak melyik dokumentumokban fordulnak elő

Hátrányok Reduce csak a teljes Map után indulhat Új elem esetén újra kell számolni Az adat nem változhat a futás közben A MapReduce futás elkezdődik és megáll

MapUpdate

Miért nem jó a MapReduce? Az adatforrás streaming A program indításakor nem áll rendelkezésre az összes adat Ezt a felhasználók még nem hozták létre A futás során az adat folyamatosan érkezik Az adatfolyam soha nem ér véget

MapUpdate MapReduce-hoz nagyon hasoló Reduce helyett Update függvény kell Szükséges platform is hasonló Több memória és kevesebb diszk kell A bejövő adatok alapján valamilyen adatszerkezetet frissítünk a memóriában MapReduce nagy fájlokon dolgozik

Event Event <sid, ts, k, v> Stream ID Timestamp Kulcs Nem egyedi az események között Pl. egy Tweet-elő felhasználó ID-ja Érték Tetszőleges blob Pl. egy tweet-et leíró JSON

Stream Események sorozata Egy adott stream-en azonos sid Ts szerint rendezett Lehet belső vagy külső Pl. Tweet-ek Pl. map vagy update által generált események

Map map(event) event* Feliratkozik egy vagy több stream-re Ezekről ts szerint rendezetten kapja az eseményeket Egy esemény feldolgozásakor kibocsát 0 vagy több eseményt tetszőleges stream-ekre A kibocsátottak ts-e nagyobb, mint az input Cél stream lehet az is, amire feliratkozott, de nagyobb ts esetén ez nem okoz gondot

Update update(event, slate) event* Input-output map-hez hasonló Kap egy slate-et Memóriában tárolt adatszerkezet Az eddig kapott események alapján ismert adatok Minden (updater, key) párhoz létezik külön slate Folyamatosan frissített Ha a kulcsok Twitter userid-k, a slate tárolhatja pl: Tweet-ek számát Utolsó tweet időpontját Egyéb fontos adatot, melyeket az események alapján aggregált

Update update(event, slate) event* Input-output map-hez hasonló Kap egy slate-et Memóriában tárolt adatszerkezet Az eddig kapott események alapján ismert adatok Minden (updater, key) párhoz létezik külön slate Folyamatosan frissített Ha a kulcsok Twitter userid-k, a slate tárolhatja pl: Tweet-ek számát Utolsó tweet időpontját Egyéb fontos adatot, melyeket az események alapján aggregált

Slate MapReduce csak az input adatokkal dolgozik Slate az update-erek emlékezete Lehet time-to-live érték Ha lejár, a slate törlődik (pl. 1 hónapja be nem jelentkezett felhasználók nem érdekesek) Ha a slate nem létezik, az updater hozza létre Key-value store-ban mentésre kerülnek Ha kell, visszatöltődnek Swap-elés

MapUpdate alkalmazás Irányított gráf Csúcsok: map vagy update függvények Élek: stream-ek Hurokél és kör megengedett Számolt értékeket külső alkalmazás a slateekből olvassa ki

FourSquare checkin számláló Map a checkin-ből helyeket generál U1 a helyeket megszámolja

Twitter hot topics Twitter S1 Twitter stream M1 Tweet-ek topikokba sorolása topic_minute párok generálása S2 = v2_9, v3_9, v2_9,... U1 Slates: V2_9 : 3 V3_9 : 77 S3 = (v2_9, 15), (v3_9, 211),... S4 = v3_9,... Ha count > threshold, Új esemény, topic azonosítóval U2 Slate of v3_9: Total: 2361 Days: 13 Topic számolás Percenként összeadva Percenként összegek kiírása

Muppet 1.0

Muppet A MapUpdate framework implementációja Minden gépen elindul megadott számú program Mindegyik mapper vagy updater lesz Master speciális mapper, a forrás alapján eseményeket generál Az események elosztása hash-eléssel történik

Egy esemény útja Master hash alapján elküldi egy adott mappernek A mapper queue-ba teszi, ha éppen dolgozik A mapper leveszi, és valahány eseményt generál Minden ilyen eseményt hash-el, és az alapján elküldi egy updater-nek Az esemény az updater queue-jába kerül

Egy esemény útja Az updater előkeresi az esemény kulcsához tartozó slate-et Végrehajtja az update-et, ami további eseményeket generálhat A további események hasonlóan kerülnek feldolgozásra

Események Az események közvetlenül, worker-ek között mennek, nem a master-en keresztül MapReduce-ban a master közvetít (legalábbis központi helyre kerül az adat) Latency minimalizálása

Slate kezelés Elsődleges tárolás memóriában Mentés key-value store-ba Swap-elés lehetősége A program a leállása után folytatható (leállítás, crash) Gyakran a slate-ekben van hasznos adat, ezek a worker nélkül is elérhetőek így A Muppet Cassandra-t használ erre

Hibák kezelése Gép kiesése Master-t értesíti az észlelő node Az események átirányításra kerülnek A node-on tárolt adat elveszett (kivéve az utoljára kiírt slate állapotok) Az alacsony késés fontosabb, mint esetleg néhány tweet fel nem dolgozása Gyors helyreállás a helyességgel szemben

Slate-ek olvasása A számított adat gyakran a slate-ekben van Kis HTTP szerver minden node-on Az URI tartalmazza a kulcsot és az updater-t Ha a slate nincs a node-on, továbbítja a kérést

Muppet 2.0

1.0 Worker Perl vezérlő Események fogadása, küldése, hash-elés, stb. Java feldolgozó Esemény feldolgozása, újak generálása Több worker egy gépen Külön slate-ek minden worker-hez

2.0 Java és Scala implementáció 1 program fut minden node-on Thread pool, minden thread egy worker Külön IO a key-value store-hoz (nem blokkolja a számításokat) 1 slate cache / node

Esemény kezelés Queue minden workerre (nem node-ra) Esemény hash alapján 2 sorba kerülhet Ha valamelyikben már van azonos kulcs, oda kerül Ha nincs, akkor az elsőbe, kivéve, ha a második sor sokkal rövidebb Kisebb eséllyel telik be egy-egy sor

Eredmények

Eredmények 2011 elején Napi 100 millió tweet, 1.5 FourSquare checkin 30 millió felhasználói profil slate Gépek száma 10-es nagyságrendű Átfutási idő 2 sec alatt 2012 június Több, mint 2 milliárd slate különböző alkalmazásokból

Létező alkalmazások TweetBeat - Tweet-ek témákba sorolása Pl. Foci világbajnokság Lehet országra szűrten nézni a tweet-eket Stb. ShoppyCat Ajándékötletek Facebook ismerősök számára

Q & A