Big Data Korszer adatbzisok 2014 Big Data Big
Big Data Korszerű adatbázisok 2014
Big Data • „Big data is the term for a collection of data sets so large and complex that it becomes difficult to process using on-hand database management tools or traditional data processing applications. ” Wikipédia Gombos Gergő Korszerű Adatbázisok 2014 2
1981 Gombos Gergő Korszerű Adatbázisok 2014 3
Gombos Gergő Korszerű Adatbázisok 2014 4
Gombos Gergő Korszerű Adatbázisok 2014 5
Big Data célja • „A vast quantity of UNSTRUCTURED data, which we now have the ability to process in REAL-TIME. ” – http: //www. youtube. com/watch? v=449 tws. MTr. JI A day in big data Gombos Gergő Korszerű Adatbázisok 2014 6
„Big Daták” • Okostelefon GPS és Internetkapcsolattal – 4, 6 milliárd mobil – 1 -2 milliárd rendelkezik internetkapcsolattal • Szenzorok – Nasa klímaadatok: 32 petabyte – Nagy hadron ütköztető (LHC): • 150 millió szenzor • 40 millió/s mérés • 0, 001%-át használják Gombos Gergő Korszerű Adatbázisok 2014 7
„Big Daták” • Sloan Digital Sky Survey – Csillagászati adatok – 200 GB / éjszakánként – 140 terrabyte adat • Közösségi hálózatok – Facebook • 1, 06 milliárd felhasználó naponta • 30 milliárd elem megosztása naponta – Twitter • 175 millió tweet naponta • 465 millió felhasználó Gombos Gergő Korszerű Adatbázisok 2014 8
Milyen „big” a Big Data? • 2. 7 Zetabyte méretű • 2020 -ra 50 x több adat mint ma • 2012 -ben az adatok 90%-a 2 év alatt „termelődött” • 2 nap alatt több információt generálunk mint 2003 óta összesen Gombos Gergő Korszerű Adatbázisok 2014 9
Big Data használata • Californiai egyetem és a L. A. P. D. – Bűnözés jóslás • (A különvélemény nem csak sci-fi) • Google influenza terjedés • Amerikai választások – https: //election. twitter. com/ • Város tervezés, dugó elkerülés – MIT mobilok alapján vizsgálják a felhasználókat és utazási szokásaikat Gombos Gergő Korszerű Adatbázisok 2014 10
Kihívások http: //www. wired. com/insights/wp-content/uploads/2012/11/big_data_660. jpg Gombos Gergő Korszerű Adatbázisok 2014 11
http: //www. ibmbigdatahub. com/sites/default/files/public_images/Smart 16. PNG Gombos Gergő Korszerű Adatbázisok 2014 12
Túl sok az adat Gombos Gergő Korszerű Adatbázisok 2014 13
Twitter Gombos Gergő Korszerű Adatbázisok 2014 14
Twitter • Max. 140 karakter hosszú üzenet • Geo információk • Retweet – Korábbi tweetelése • Sample API – Valós tweetek 1%-a Gombos Gergő Korszerű Adatbázisok 2014 15
Twitter üzenetek elemzése • Marketing – Vásárlói visszajelzés • Kampány elemzés – Vélemények elemzése tweet alapján • http: //www. csc. ncsu. edu/faculty/healey/tweet_viz/tweet_app/ Gombos Gergő Korszerű Adatbázisok 2014 16
Twitter üzenetek elemzése • Befolyásos ember keresés Gombos Gergő Korszerű Adatbázisok 2014 17
Twitter üzenetek elemzése • Hír terjedése http: //ghergich. com/infographic-examples/harlem-shake-vs-gangnam-style/ Gombos Gergő Korszerű Adatbázisok 2014 18
Twitter faster than earthquakes http: //www. youtube. com/watch? v=0 UFs. Jh. YBxz. Y Gombos Gergő Korszerű Adatbázisok 2014 19
Twitter adatok http: //www. jeffbullas. com/wp-content/uploads/2013/10/sensational-social-mediafacts-andstatistics-behind-Twitter. jpg Gombos Gergő Korszerű Adatbázisok 2014 20
Twitter adatok Gombos Gergő Korszerű Adatbázisok 2014 21
Hadoop
Kiknek jó a hadoop? “. . . to create building blocks for programmers who just happen to have lots of data to store, lots of data to analyze, or lots of machines to coordinate, and who don’t have the time, the skill, or the inclination to become distributed systems experts to build the infrastructure to handle it. ” Tom White Hadoop: The Definitive Guide Gombos Gergő Korszerű Adatbázisok 2014 23
Kik haszálják? Gombos Gergő Korszerű Adatbázisok 2014 24
Hadoop történelem • 2004 – Google publikálja a Map. Reduce technikát • 2006 – Apache projekt lett Yahoo! támogatással • További támogatók: Gombos Gergő Korszerű Adatbázisok 2014 25
Verziók • • • • 20 February, 2014: Release 2. 3. 0 available 11 December, 2013: Release 0. 23. 10 available 15 October, 2013: Release 2. 2. 0 available 23 September, 2013: Release 2. 1. 1 -beta available 25 August, 2013: Release 2. 1. 0 -beta available 23 August, 2013: Release 2. 0. 6 -alpha available 1 Aug, 2013: Release 1. 2. 1 (stable) available 8 July, 2013: Release 0. 23. 9 available 6 June, 2013: Release 2. 0. 5 -alpha available 5 June, 2013: Release 0. 23. 8 available 13 May, 2013: Release 1. 2. 0 available 25 April, 2013: Release 2. 0. 4 -alpha available 18 April, 2013: Release 0. 23. 7 available 15 February, 2013: Release 1. 1. 2 available 14 February, 2013: Release 2. 0. 3 -alpha available Gombos Gergő Korszerű Adatbázisok 2014 26
Hadoop alprojektek • • • Ambari (Hadoop menedzser) Avro (adat formátumok támogatása) Cassandra (adatbázis) Chukwa (monitorozó) Hama (analizáló eszköz) Hbase (adatbázis) Hive (SQL szerű nyelv) Mahout (gépi tanulás csomag) Pig (lekérdező nyelv) Spark (gyors, általánosított motor elemzésekhez) Zoo. Keeper (koordinátor) Gombos Gergő Korszerű Adatbázisok 2014 27
Miért elosztva? • Feladat: Olvassunk fel 1 TB adatot egy merevlemezről. Mennyi idő szükséges ehhez? • Ez 4 óra lenne. Gombos Gergő Korszerű Adatbázisok 2014 28
approximately 3800 nodes Gombos Gergő Korszerű Adatbázisok 2014 29
HDFS • HDFS = Hadoop Distributed Filesystem Gombos Gergő Korszerű Adatbázisok 2014 30
HDFS • HDFS Split Block 1 Block 2 Block 3 Gombos Gergő Korszerű Adatbázisok 2014 31
HDFS • HDFS replikálás Block 1 Block 2 Block 3 Gombos Gergő Korszerű Adatbázisok 2014 32
Architecktúra • Master-Slave architektúra • DFS Master “Namenode” – – Kezeli a fájlrendszert Karbantartja a fájlnév és hozzátartozó blokkok kapcsolatát Kezeli a blokk lefoglalást / replikálást Kezeli a hozzáférést a fájlrendszerhez • DFS Slaves “Datanodes” kezelik a blokk tárolást – – Tárolják az adatblokkokat Kliensek hozzáférnek a blokkokhoz közvetlenül a datanode-ról Rendszeresen küld blokk információkat a namenode-nak Periódikusan ellenőrzi a blokkok sértetlenségét. Gombos Gergő Korszerű Adatbázisok 2014 33
Architektúra (1. 2. 1) Gombos Gergő Korszerű Adatbázisok 2014 34
Architektúra (2. 2) Gombos Gergő Korszerű Adatbázisok 2014 35
Hadoop alapelvek • A kódot mozgassuk az adatokhoz • Ne kelljen foglalkozni szinkronizálással, hiba toleranciával • A nehéz munkát ő végzi, tudunk koncentrálni az adat feldolgozásra Gombos Gergő Korszerű Adatbázisok 2014 36
Hadoop előnyök • Hibás futás automatikusna újra futtatja • Több node számolja ugyanazt, így a lassúság nem okoz gondot • Nagy adatoknál a map ott fut ahol az adat van, ha lehetséges Gombos Gergő Korszerű Adatbázisok 2014 37
Map. Reduce • Paradigma: – A problémát bontsuk kisebb feladatokra, oldjuk meg párhuzamosan, összegezzük az eredményt • Map: – Alakítsuk a bementi adatokat (kulcs, érték) párokra • Reduce: – Alakítsuk az adott kulcshoz tartozó adatokat a kimeneti formára Gombos Gergő Korszerű Adatbázisok 2014 38
Példa Gombos Gergő Korszerű Adatbázisok 2014 39
További lehetőségek • Partitioners – Map kulcsok hashalésének felüldefiniálása • Combiners – Map kimenetének redukálása • Compression – Output tömörítése • Counters – Folyamatjelzők • Zero Reduces – Csak a map fut, nincs sort és shuffle Gombos Gergő Korszerű Adatbázisok 2014 40
Map public static class Map extends Mapper<Long. Writable, Text, Int. Writable> { private final static Int. Writable one = new Int. Writable(1); private Text word = new Text(); public void map(Long. Writable key, Text value, Context context) throws IOException, Interrupted. Exception { String line = value. to. String(); String. Tokenizer tokenizer = new String. Tokenizer(line); while (tokenizer. has. More. Tokens()) { word. set(tokenizer. next. Token()); context. write(word, one); } } } Gombos Gergő Korszerű Adatbázisok 2014 41
Reduce public static class Reduce extends Reducer<Text, Int. Writable, Text, Int. Writable> { public void reduce(Text key, Iterable<Int. Writable> values, Context cont) throws IOException, Interrupted. Exception { int sum = 0; for (Int. Writable val : values) { sum += val. get(); } context. write(key, new Int. Writable(sum)); } } Gombos Gergő Korszerű Adatbázisok 2014 42
Elérés • Elérés: – monet. inf. elte. hu • Belépés: – felhasználó/jelszó: ami eddig • Manager oldalak: – http: //monet. inf. elte. hu: 50030 – http: //monet. inf. elte. hu: 50070 Gombos Gergő Korszerű Adatbázisok 2014 43
Parancsok • Listázás – hadoop fs –ls • Kiírja egy fájl tartalmát – hadoop fs –cat • Betöltés – hadoop fs –put • Könyvtár létrehozás – hadoop fs –mkdir • Könyvtár törlése rekurzívan – hadoop fs -rmr Gombos Gergő Korszerű Adatbázisok 2014 44
Hadoop streaming hadoop jar /home/hadoop-1. 2. 1/contrib/streaming/ hadoop-streaming-1. 2. 1. jar -mapper "cut -d' ' -f 1" -reducer "uniq" -input /user/ggombos/adatok. txt -output out_adatok num. Reduce. Tasks 1 Gombos Gergő Korszerű Adatbázisok 2014 45
Eclipse plugin 1. Letölteni a szükséges jar-okat a. http: //oktnb 16. inf. elte. hu/ggombos/korszeru/ b. hadoop-eclipse-plugin-1. 2. 1. jar c. hadoop-core-1. 2. 1. jar 2. 3. 4. 5. Plugin bemásolása az eclipse/plugin mappába Elindítjuk az eclipset Nézet átállítása Map/Reduce-ra New Hadoop location beállítása Gombos Gergő Korszerű Adatbázisok 2014 46
Hadoop location • map/reduce master: – host: monet. inf. elte. hu – port: 10814 • dfs master: – use M/R Master host OK – host: monet. inf. elte. hu – port: 8020 • User name: neptun azonosito Gombos Gergő Korszerű Adatbázisok 2014 47
Segítség A generált kódban lecseréljük a sorokat erre: conf. set. Input. Format(Text. Input. Format. class); conf. set. Output. Format(Text. Output. Format. class); File. Input. Format. set. Input. Paths(conf, new Path("In")); File. Output. Format. set. Output. Path(conf, new Path("Out")); Létező fmappák törlése: File. System fs = File. System. get(conf); if (fs. exists(new Path(“Outer”))) fs. delete(new Path(“Outer”), true); Gombos Gergő Korszerű Adatbázisok 2014 48
Futtatás • Export -> normal JAR • Felmásoljuk monet-re • Hadoop jar_name. jar Gombos Gergő Korszerű Adatbázisok 2014 49
Köszönöm a figyelmet!
- Slides: 50