Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaGabi Tamásné Megváltozta több, mint 10 éve
1
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék R és MapReduce „Big Data” elemzési módszerek Kocsis Imre ikocsis@mit.bme.hu 2013.10.09.
2
MapReduce: a teljes kép Forrás: [1], p 30
3
MapReduce: a keretrendszer feladatai [1] „What” és „how” szétválasztása Job: „kód” o Mapper, reducer, (partitioner, combiner) o Egy kijelölt csomópontnak adjuk ki („JobTracker”) Ütemezés (scheduling) o „task”-okra szétválasztás; pl bemeneti (k,v) párok blokkja o task-ok csomóponthoz rendelése o Szükség lehet várakozási sorra is! o „stragglers” spekulatív végrehajtás map és reduce is a leglassabb task-tól függ Kulcselolszlás miatt reduce esetén nem mindenképp megoldás
4
Kitérő: Zipf eloszlás
5
MapReduce: a keretrendszer feladatai [1] Adat és kód kolokáció o „kódot visszük az adathoz” o Taszk indításnál: helyi „rack” „távoli” Szinkronizáció o Map és Reduce között o „shuffle and sort” (nagy, elosztott GROUP BY key) Hibakezelés!
6
Partícionálás és Kombinálás Legegszerűbb part.: hash(kulcs) mod #reducer o f: kulcs reducer Kombinálás: lokális aggregálás o „mini-reducer” o Word count? o Hálózati kommunikáció redukálása o Általánosságban nem „csereszabatos” a reducer-rel
7
R és funkcionális programozás Az R-ben ez is van. Ismerkedjünk meg: o lapply, sapply, tapply, apply, mapply, Reduce, {plyr csomag}, … ‚foreach’ csomag (doParallel/doMC/doSNOW backend)
8
foreach
9
RHADOOP
10
R és Hadoop? Miért? o R reuse: nyelv és létező megvalósítások Vizualizáció!!! o R: létező funkcionális programozási támogatás Megvalósítások? o RHadoop (github: RevolutionAnalytics/RHadoop), RHIPE, segue, HadoopStreaming, rHadoopClient, … Kulcs: Streaming API o stdin/stdout: „tetszőleges” futtatható állomány befűzhető map vagy reduce taszknak
11
Wordcount - Java (Persze ez így nem teljesen fair…) Olvasni: [5]
12
Wordcount - R rmr.options(backend = "local")!
13
rmr2 local backend [6] Kész VM használata [7] o http://vcl.inf.mit.bme.hu ! (R)Hadoop-ot
14
k-means [6]
15
Egy megoldás [8] R: kmeans; példa
16
k-means rmr2/blob/master/pkg/tests/kmeans.R dist.fun = function(C, P){ apply(C, 1, function(x) colSums((t(P) - x)^2))}
17
k-means: map kmeans.map = function(., P) { nearest = { if(is.null(C)) sample(1:num.clusters,nrow(P), replace = T) else { D = dist.fun(C, P) nearest = max.col(-D)}} if(!(combine || in.memory.combine)) keyval(nearest, P) else keyval(nearest, cbind(1, P))}
18
k-means: map Kulcs: P ponthoz legközelebbi klaszter-centrum o C „normál” R objektum o scoping miatt elérhető a map-ben o P: HDFS-ből Érték: P Ha még nincsenek klaszter-centrumok: mintavétel visszahelyezéssel Vektorizált keyval ismét in.memory.combine, combine: nem a mapreduce függvényé!
19
k-means: reduce kmeans.reduce = { if (!(combine||in.memory.combine)) function(., P) t(as.matrix(apply(P, 2, mean))) else function(k, P) keyval( k, t(as.matrix(apply(P, 2, sum))))}
20
k-means: reduce Azonos kulcshoz (középpont) tartozó vektorok átlaga Azaz: o Map: a legközelebbi klaszterbe sorol (középpont) o Reduce: kialakult új középpontok Szemlétesen: a középpontokat „tologatjuk” Beragadhat lokális minimumba! (aut. Megállásnál) Algoritmust lásd (aut. megállással): [8], p 1422
21
kmeans.mr: törzs (1)
22
Iterációk C felüldefiniálásával Minden menetben mapreduce-szal új középpontok
23
kmeans-törzs (2)
24
Regresszió f függvény, bemenet: az attribútumok értéke, kimenet: megfigyelések legjobb közelítése „ökölszabály” Példa: testtömeg/magasság együttes eloszlás valójában egyenesre illeszthető,
25
Regressziós módszerek Alapelv: Véletlen változó Közelítés Hiba Jósolt esemény Megfigyelhető változók Átlagos hiba (mean error) Mért érték Becsült érték
26
Lineáris regresszió Egyszerű lin. függvény illesztése az adatokra o nem vár alapvető változást a rendszer viselkedésében Legkisebb négyzetek módszere o keressük azokat az a,b paramétereket, amelyekre cél: minimális (Sum of Squared Errors) minimalizálása
27
Levezetés (parc. deriválás) Xi, Yi a mért értékpárok (pl. idő, terhelés)
28
Lineáris regresszió
29
Lineáris regresszió: általános alak
30
„Summation form”
31
„Summation form”-ban felírható problémák [9] Locally Weighted Linear Regression Naive Bayes Gaussian Discriminative Analysis k-means Logistic regression Neural network Principal Component Analysis Independent Component Analysis Expectation Maximization Support Vector Machine
32
„Summation form” Gradienseket és (stat. modellre nézve) elégséges statisztikákat számító algoritmusok
33
Hivatkozások [1] Lin, J., & Dyer, C. (2010). Data-Intensive Text Processing with MapReduce. Synthesis Lectures on Human Language Technologies, 3(1), 1–177. doi:10.2200/S00274ED1V01Y201006HLT007 [2] http://www.slideshare.net/jeffreybreen/big-data-stepbystep-using-r- hadoop-with-rhadoops-rmr-packagehttp://www.slideshare.net/jeffreybreen/big-data-stepbystep-using-r- hadoop-with-rhadoops-rmr-package [3] http://www.cloudera.com/content/support/en/downloads.htmlhttp://www.cloudera.com/content/support/en/downloads.html [4] http://hortonworks.com/products/hortonworks-sandbox/http://hortonworks.com/products/hortonworks-sandbox/ [5] http://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.htmlhttp://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html [6] http://home.mit.bme.hu/~ikocsis/notes/2013/10/23/(r)hadoop-sandbox- howto/http://home.mit.bme.hu/~ikocsis/notes/2013/10/23/(r)hadoop-sandbox- howto/ [7] http://home.mit.bme.hu/~ikocsis/notes/2013/10/28/rhadoop-sandbox-with- the-cloudera-quickstart-vm/ http://home.mit.bme.hu/~ikocsis/notes/2013/10/28/rhadoop-sandbox-with- the-cloudera-quickstart-vm/ [8] Iványi, A. "Informatikai algoritmusok." ELTE Eötvös Kiadó, Budapest (2004). [9] Chu, C. T., Kim, S. K., Lin, Y. A., Yu, Y., Bradski, G. R., Ng, A. Y., & Olukotun, K. (2006). Map-reduce for machine learning on multicore. In B. Schölkopf, J. Platt, & T. Hofmann (Eds.), Advances in Neural Information Processing Systems 19: Proceedings of the 2006 Conference (pp. 281–288). MIT Press.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.