algritmusk és szftver-rendszerekrendszerek Benczúr András MTA SZTAKI benczur@sztaki.mta.hu http://datamining.sztaki.hu 2013-09-17
2013-09-17 2
thenewhype big data is when the size f the dataitself becmes part f the prblem big data is data that becmes largeenugh that it cannt be prcessed using cnventinal methds Ggle srts 1PB in 33 minutes(07-09-2011) Amazn S3 stre cntains 499B bjects(19-07-2011) New Relic: 20B+ applicatin metrics/day(18-07-2011) Walmart mnitrs 100M entities in real time(12-09-2011) Surce: The Emerging slide frm the Intelligent Infrmatin Management DG INFSO/E2 Objective ICT-2011.4.4 Inf day in Luxemburg n 26 September 2011 2013-09-17 3
Adatbányászat, Adatbányászat: Haszns (meglepő?) tudás kinyerése nagy adattömegből Technikák Algritmusk (nagy méret) Adatbázisk (elrendezés, hzzáférés) minden még nagybb Mesterséges Intelligencia és Gépi Tanulás (mdellek) Statisztika (hiptézisvizsgálat) Algritmusk (elszttt, Mesterséges Intelligencia MapReduce, Clud) és Gépi Tanulás ajánló Adatbázisk (elszttt, NSQL) rendszerek, hálózatk Okstelefnk, közösségi Statisztika média (Facebk, Twitter, )
Elszttt rendszerek Murphy törvénye 2013-09-17 5
Elszttt rendszerek Murphy törvénye Fx&Brewer CAP Tétel : C-A-P: kettőt választhatunk! C cnsistency A Availability AP: egy replika válaszlhat hibásan P Partitin-resilience Végül knzisztenssé válhat eventual cnsistency 2013-09-17 6
Mi történik, ha szétesik a rendszer? CAP tétel biznyítás Partitin(P): a jbb ldalra beírt új értéket nem ismeri a bal ldal Ha aznnal kérdezünk a bal ldaln (availability), akkr hibás a válasz Vagy availability(a), vagy knzisztencia (C) Végül lehet knzisztens (eventual cnsistency) A kapcslat helyreállása után lehet adatt cserélni 2013-09-17 7
Duplikátum-keresés: keresés: erősebb krlátk! name e-mail ID Mary Smith m.smith@mail-1.cm 50071 Mary De mary@mail-2.cm 50071 M. De mary@mail-2.cm 79216 M. Smith m.smith@mail-1.cm 34302 Sidló, B, Garzó, Mlnár, Infrastructures and bunds fr distributed entity reslutin. QDB 2011 2013-09-17 8
Duplikátum-keresés: keresés: erősebb krlátk! Halmaz metszet kmmunikációs bnylultsága Θ(n) bit [Kalyanasundaram, Schintger 1992] Következmény: több szerveren elszttt adatk esetén Θ(n) kmmunikáció eldönteni, hgy van-e duplikátum! Javaslt módszerek: Blcking [Whang, Menestrina, Kutrika, Thebald, Garcia-Mlina. ER with Iterative Blcking, 2009, stb.] Legjbb esetben is minden adatt ki kell cserélni Kapcslódó terület: Lcality Sensitive Hashing nincs minimum, azaz krdináta egyezés LSH hasnló a DnhZer nrm (nem-0 krdináták száma) negatív eredményekhez Sidló, B, Garzó, Mlnár, Infrastructures and bunds fr distributed entity reslutin. QDB 2011 2013-09-17 9
Gráfalgritmuskőstörténete: P, NP P: Gráfbejárás; Feszítőfa NP: Steiner fa 15 5 1 15 2 1 2 1 2 2 25 1 2 1 1 5 1 1 2013-09-17 10
Kit érdekel ez még ma? Képszegmentálás Aznsságfelldás name e-mail ID Mary Smith m.smith@mail-1.cm 50071 Mary De mary@mail-2.cm 50071 M. De mary@mail-2.cm 79216 M. Smith m.smith@mail-1.cm 34302 1 2 3 2013-09-17 11
MapReduce Ggle technlógia MapReduce: simplified data prcessing n large clusters. J Dean, S Ghemawat- Cmmunicatins f the ACM, 2008[OSDI 2004] Hadp: Yah! által indíttt pen surce HDFS: Hadp Distributed File System MapReduce: kétfázisú algritmus környezet 2013-09-17 12
Map/Reduce prgramzási mdell Adatelőkészítés, szűrés rendezés kulcs szerint azns kulcsk összevnása 2013-09-17 13
Szélességi bejárás 1 2 3 2 2 3 3 3 4 4 2013-09-17 14
Szélességi bejárás MAP: Minden n csúcs távlsága starttól (D); ki-éllista p ki-él(n): emit (p, D+1) Reduce p szerint rendezve kapja kiválasztja a legkisebb értéket (új távlság) mindent kiír diszkre, újraindul Végetér, ha egy iterációban nincs váltzás Össze kell rendelni a ki-él(n)-tés az új D-t Megldás: emit(n, éllista(n)) is kell! Élsúlykkal? A fenti a Bellman-Frd algritmus Dijkstra hatéknyabb, mert csak a határn száml 2013-09-17 15
MapReduce BFS kód public static vid main(string[] args) { String[] value= { // key distance pints-t "1 0 2;4", "2 "+Integer.MAX_VALUE+" 1;3;4", "3 "+Integer.MAX_VALUE+" 2", "4 "+Integer.MAX_VALUE+" 1;3", }; 1 2 3 4 --+---------- 1 0 1 0 1 2 1 0 1 1 3 0 1 0 0 4 1 0 1 0 } mapper(value); reducer(cllect.entryset()); 2013-09-17 16
MapReduce BFS kód private static vid reducer(set<entry<string, ArrayList<String>>> entryset) { fr(map.entry<string, ArrayList<String>> e : entryset) { Iteratr<String> values = e.getvalue().iteratr(); int mindist = Integer.MAX_VALUE; Stringlink_list= ""; while(values.hasnext()) { String[] dist_links= } } values.next().tstring().split("[ ]"); if(dist_links.length > 1) link_list = dist_links[1]; int dist = Integer.parseInt(dist_links[0]); mindist = Math.min(minDist, dist); } System.ut.println(e.getKey() + " -D " + (mindist+ " " + link_list)); } 2013-09-17 17
MapReduce BFS kód private static vid mapper(string[] value) { fr(int i = 0; i < value.length; i++) { String line = value[i].tstring(); String[] keyval= line.split("[ ]"); String Key = keyval[0]; String sdist = keyval[1]; String[] links = null; if(keyval.length> 2) { links= keyval[2].split(";"); int Dist = Integer.parseInt(sDist); } } } ArrayList<String> list; if(cllect.cntainskey(key)) { list = cllect.get(key); } else{ list = new ArrayList<String>(); } list.add(sdist + " " + keyval[2]); cllect.put(key, list); } } if(dist!= Integer.MAX_VALUE) Dist++; fr(int x = 0; x < links.length; x++) { if(links[x]!= "") { ArrayList<String> list; if(cllect.cntainskey(links[x])) { list = cllect.get(links[x]); } else{ list = new ArrayList<String>(); } list.add(dist+ " "); cllect.put(links[x], list); 2013-09-17 18
MapReduceBFS Map: távlság + 1 átadása a szmszédknak Reduce: minimum számítása Iteráció, amíg knvergál... 2013-09-17 19
Bulk Synchrnus Parallel (BSP) kmpnensek Ggle Pregel(nem publikus) GraphLab(C++, több mint BSP) Giraph, HAMA, 2013-09-17 20
ParallelizatinCntract, BSP és a Jinművelet Adat Másdrendű függvény Elsőrendű függv. (user kód) Adat Map PACT Map PACT (PArallelizatin CntracT) Minden rekrd egy csprt Minden csprtt külön dlgzhatjuk fel ReducePACT Egyik attribútum a kulcs Azns kulcs egy csprthz tartzik Reduce PACT 2013-09-17 21
ParallelizatinCntract, BSP és a Jinművelet Adat Másdrendű függvény Elsőrendű függv. (user kód) Adat Jin PACT Minden azns kulccsal rendelkező pár egy csprt (equi-jin) BSP Csúcsk és Élek Kulcs a csúcs ID Egy csúcs szmszédjainak összegyűjtése 2013-09-17 22
A Stratsphererendszerrendszer PACT prgramzási mdell Végrehajtás ptimalizáció, mint hagymánys adatbázis-kezelőknél Alacsny szintű adatflyam engine(nephele) Képes adatcsatrnát (memória, diszk, hálózat) választani, adatt memóriában tartani, pl. MapReduce-t hatéknyan iterálni Elméletben 2013-09-17 23
Algritmusk adatflyamkn Számítási mdellek Belső tár (P, NP) Külső tár Adatflyam Algritmus típusk Determinisztikus Randmizált(Las Vegas ill. Mnte Carl) Közelítő Mértékek Idő, adatk ellvasásának száma Tárhely 2013-09-17 24
Különböző értékek száma Feladat Input Értékkészlet X = x1, x2,..., x n U = { 0, 1, 2,..., m 1} D(X) különböző értékek száma X-ben Gnd: Nagy értékkészlet (szöveg, URL, IP+prt stb) Nézzük meg különböző számítási mdellekben algritmikus mdellekben hgy megértsük az adatflyam mdell nehézségét Történet:Aln, Mathias, Szegedy1996 Self-jinvagy másdik mmentum méretére kmmunikációs krlátk, véletlen közelítő algritmusk, Gödel Prize 2005 2013-09-17 25
Belső tárban: hashtáblával Táblaméret r = θ(n), hash függvény h:u [1..r] Inicializálni A[1..r] tömböt; D = 0 Minden input értékre Output D Ellenőrizni, hgy i szerepel-e az A[h(i)]-ban tárlt listában Ha nem,d D+1, ésihzzáadása aza[h(i)]-bantárlt listáhz Véletlen h: kevés ütközés, legtöbb lista hssza O(1) Így Idő O(n) [várható] Tár O(n) 2013-09-17 26
Külső tár algritmus mdell Ha az input nem fér el a belső tárban M memóriaméret Input méret n >> M Adat diszken Diszken egy blkkban B << Madat Egység lépés egy blkk diszk és memória közötti mzgatása Memória műveletek ingyen vannak! 2013-09-17 27
Miért blkkk?? Memória ingyen?? Blkk írás/lvasás? Átviteli sebesség 100 MB/sec (kb) Blkk méret 100 KB (kb) Blkk átvitel (kb1 ms) << Seek idő (kb10 ms) Tehát csak a seek-ek száma érdekes Lineáris lvasás még jbb, mert kevesebb seek Memória miért van ingyen? Prcesszr sebesség pár GHz Seek idő kb10 ms Numbers Everyne Shuld Knw RAM L1 cache reference 0.5 ns L2 cache reference7 ns Jeff Dean, Ggle Main memry reference 100 ns Read 1 MB sequentially frm memry 250,000 ns Intra-prcess cmmunicatin Mutex lck/unlck 100 ns Read 1 MB sequentially frm netwrk 10,000,000 ns Disk Disk seek 10,000,000 ns Read 1 MB sequentially frm disk 30,000,000 ns 2013-09-17 28
Miért nem jó külső tárban a hash tábla? Prbléma Hashtábla Anem fér a memóriába Minden inputra A véletlen eleme kell Minden elem véletlen diszk seek Lépésszám Ω(n) diszk blkk hzzáférés Lineáris idő O(n/B) lenne ebben a mdellben MergeSrt a jó megldás 2013-09-17 29
Mintavételezés: ha az adat túl nagy Előny szublineáris tár Több adat, mint diszk (ez azért ritka ) Túl gyrsan jön az adat, nem tudjuk kiírni Ára közelítési hiba Szkáss naiv megldás Véletlen minta R(mérete r) az n hsszú X-ből Mintában D(R) Becslés D ˆ = D( R) n / Baj ritka értékek alulreprezentáltak! Van-e jbb megldás?? r 2013-09-17 30
Mintavételezés negatív eredmény Tétel:ha E becsüli D(X)-tr<n érték vizsgálatával, ahl a mintavételezés függhet a láttt adatktól is, akkr E relatív hibája n r 1 ln 2r δ δ legalább hibával, ahl δ > e r. Példa r = n/5 20% hiba ½ valószínűséggel [Charikar, Chaudhuri, Mtwani, Narasayya 2000] 2013-09-17 31
Adatflyam determinisztikus alsó krlát Tétel:Determinisztikus adatflyam algritmus memóriaigénye Ω(n lg m) Biznyítás: Tételezzük fel determinisztikus A (n lg m) bitet használ Válasszunk inputt, U, mérete n<m S A állapta az input ellvasása után Ellenőrizhetjük, hgy bármelyik x i ε U úgy, hgy A megkapja x i -t következő inputnak D(X) nem nő pntsan akkr, ha x i ε X Iinfrmáció-elmélet U visszaállítható S-ből m n Tehát állapt, Ω(n lg m) bit 2013-09-17 32
Véletlen közelítés Alsó krlátmegenged randmizáltvagy közelítő algritmuskat SM Algritmus Fix t-red(x) >> t? hash függvény h: U [1..t] Kezdő válasz NEM Minden x -re,ha h( x ) = t,akkr a válasz IGEN Tétel: i HaD(X) < t,p[sm kimenete NEM] > 0.25 HaD(X) > 2t,P[SM kimenete NEM] < 0.136 = 1/e^2 Figyelem 1 bit memóriakell csak! i [Indyk-Mtwani 1998] 2013-09-17 33
Hiba csökkentése 1 bittel valószínűleg elkülöníthető D(X) < t és D(X) > 2t O(lg 1/δ) független hashfüggvény hibavalószínűség tetszőlegesen kicsi δ>0 lehet O(lg n) független hashfüggvény t = 1, 2, 4, 8, n esetén D(X) becsülhető 2 szrzón belül A 2 itt tetszőleges knstans (1+ε) esetén hiba ε Ellenőrizni D(X)(1±ε) szrzón belül (1-δ) valószínűséggel becsülhető n 1 O( lg 2 lg ) ε δ tárban. 2013-09-17 34
Leszámlálás vagy mintavételezés Nehezebb feladat Adatk sk értékkel X csak egy attribútum Adatbázis-feladatk select,jin, Elszttt algritmusk adatflyamk kmbinációja Előző algritmus Kicsi hiba De csak száml egyik fenti feladatt sem tudja megldani Mintavételezés Megtarthatja a többi attribútumt is fenti feladatk kezelhetők De előbb láttunk egy nagyn rssz alsó krlátt 2013-09-17 35
A DistinctSamplingmódszermódszer A két világból a legjbbat akarjuk Nagy pntsság distinct sample kiválasztása az adatflyamból De minden elemet ellvasunk! Ötlet Hash véletlen priritás az értékekre Priritás a kezdő 0-k száma h(x) bináris felírásában Az O( ε 2 lgδ 1 ) legnagybb priritású eddig láttt érték megtartása Minta teljes adattartalmmal ε 1 δ relatív hiba valószínűséggel [Gibbns 2001] 2013-09-17 36
A DistinctSamplealgritmusalgritmus Paraméter memória-méret Indítás cur_lev 0; S üres Minden xinputra L h(x) Ha L>cur_lev akkr x hzzáadása S-hez Ha S > M M S-ből minden pntsan cur_lev szintű elem törlése cur_lev cur_lev+1 cur Eredmény 2 _ lev S ( 2 1 lg ) = O ε δ 2013-09-17 37
Adatflyam rendszer: TwitterStrm 1. Adatflyam 2. Sput 3. Blt Végtelen tuple srzat Frrás Pl. Twitter streaming API Input flyamt lvassa, feldlgzza, új flyamt ír Pl. függvény, szűrő, aggregátr, jin 4. Tplógia Sputés bltdag (irányíttt körmentes gráf)
Valós idejű mbilitás előrejelzés 2013-09-17 39
Tvábbi infrmáció NSQL bevezető www.intertech.cm/resurce/usergrup/nsql.ppt Key-value stres BerkeleyBD nem szttt Vldemrt behemth.strlen.net/~alex/vldemrt-nsql_live.ppt Cassandra, Dynam, Hadp alapn is létezik (lent): HBase Hadp www.cca08.rg/files/slides/owen-omalley-hadp CCA 2008.ppt HBase datasearch.ruc.edu.cn/curse/cludcmputing20102/slides/lec07.ppt Mahut cwiki.apache.rg/mahout/faq.data/mahut Overview.ppt Miért kell más? Mi más kell? Streaming Bulk Synchrnus Parallel Graphlab http://graphlab.rg/hme/publicatins/ MOA http://www.slideshare.net/abifet/ma-5636332/dwnlad Strm- http://engineering.twitter.cm/2011/08/strm-is-cming-mre-details-and-plans.html S4 http://www.slideshare.net/alekbr/s4-stream-cmputing-platfrm Saját előadás-srzatunk: https://dms.sztaki.hu/hu/letltes/elszttt-technlgiak-eladassrzat 2013-09-17 40
Kérdések? Benczúr András Infrmatika Kutatólabr lab http://datamining.sztaki.hu/ benczur@sztaki.mta.hu 2013-09-17 41