1 / 33

R és MapReduce

R és MapReduce. „Big Data” elemzési módszerek Kocsis Imre ikocsis @ mit.bme.hu 2013.10.09. MapReduce : a teljes kép. Forrás: [1], p 30. MapReduce : a keretrendszer feladatai [1]. „ What ” és „ how ” szétválasztása Job: „kód” Mapper, reducer , ( partitioner , combiner )

kylia
Download Presentation

R és MapReduce

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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” • Mapper, reducer, (partitioner, combiner) • Egy kijelölt csomópontnak adjuk ki („JobTracker”) • Ütemezés (scheduling) • „task”-okra szétválasztás; pl bemeneti (k,v) párok blokkja • task-ok csomóponthoz rendelése • Szükség lehet várakozási sorra is! • „stragglers”  spekulatív végrehajtás • map és reduce is a leglassabb task-tól függ • Kulcselolszlásmiatt reduce esetén nem mindenképp megoldás

  4. Kitérő: Zipf eloszlás • Zipf törvénye: természetes nyelvi szövegben (a legtöbb nyelvre, elég nagy korpuszra, …) bármely szó gyakorisága inverz arányos a frekvenciatáblában vett helyezésével (ranking). • „A leggyakoribb háromszor olyan gyakori, mint a harmadik” • k: helyezés, s: paraméter (klasszikusan 1), N: elemek száma

  5. MapReduce: a keretrendszer feladatai [1] • Adat és kód kolokáció • „kódot visszük az adathoz” • Taszk indításnál: helyi  „rack”  „távoli” • Szinkronizáció • Map és Reduce között • „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 • f: kulcs  reducer • Kombinálás: lokális aggregálás • „mini-reducer” • Word count? • Hálózati kommunikáció redukálása • Általánosságban nem „csereszabatos” a reducer-rel

  7. R és funkcionális programozás • Az R-ben ez is van. • Ismerkedjünk meg: • lapply, sapply, tapply, apply, mapply, Reduce, {plyr csomag}, … • ‚foreach’ csomag (doParallel/doMC/doSNOWbackend)

  8. foreach

  9. RHadoop

  10. R és Hadoop? • Miért? • R reuse: nyelv és létező megvalósítások • Vizualizáció!!! • R: létező funkcionális programozási támogatás • Megvalósítások? • RHadoop (github: RevolutionAnalytics/RHadoop), RHIPE, segue, HadoopStreaming, rHadoopClient, … • Kulcs: Streaming API • 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. (R)Hadoop-ot • rmr2 local backend [6] • Kész VM használata [7] • http://vcl.inf.mit.bme.hu !

  14. k-means [6] • Adatpontok: vektortér • Klaszter reprezentációja: súlyponttal / ”középponttal” (vektor-átlag) • : i-edik klaszter reprezentánsa • Minimalizálandó a négyzetes távolságösszeg, mint hiba:

  15. Egy megoldás [8] repr. kezdeti halmaza while változik dofor adott sorrendben do klaszter-indexe ifthen { } return 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 • C „normál” R objektum • scoping miatt elérhető a map-ben • P: HDFS-ből • Érték: P • Ha még nincsenek klaszter-centrumok: mintavétel visszahelyezéssel • Vektorizáltkeyval 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: • Map: a legközelebbi klaszterbe sorol (középpont) • 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. kmeans.mr: törzs (1) • 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 egyenesreilleszthető,

  25. Regressziós módszerek • Alapelv: Véletlen változó Hiba Közelítés Jósolt esemény Megfigyelhető változók • Átlagos hiba (mean error) Becsült érték Mért érték

  26. Lineáris regresszió • Egyszerű lin. függvény illesztése az adatokra • nem vár alapvető változást a rendszer viselkedésében • Legkisebb négyzetek módszere • 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ó • Legjobban illeszkedő egyenes • , ahol • DE:Anscombe’squartet • Minőségilegkülönbözőadatok • Azonos regressziósegyenes

  29. Lineáris regresszió: általános alak • Solve: • :„design matrix” - tanító-minták a sorok • : „targetlabels”

  30. „Summationform” • és • … és ezek a szummák már párhuzamosíthatóak m-ben.

  31. „Summationform”-ban felírható problémák [9] • LocallyWeightedLinearRegression • NaiveBayes • Gaussian DiscriminativeAnalysis • k-means • Logisticregression • Neuralnetwork • PrincipalComponentAnalysis • Independent ComponentAnalysis • ExpectationMaximization • SupportVectorMachine

  32. „Summationform” • 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-package • [3] http://www.cloudera.com/content/support/en/downloads.html • [4] http://hortonworks.com/products/hortonworks-sandbox/ • [5] http://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/ • [7] http://home.mit.bme.hu/~ikocsis/notes/2013/10/28/rhadoop-sandbox-with-the-cloudera-quickstart-vm/ • [8] Iványi, A. "Informatikaialgoritmusok." ELTE EötvösKiadó, 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.

More Related