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
1981 Gombos Gergő Korszerű Adatbázisok 2014
Gombos Gergő Korszerű Adatbázisok 2014
Gombos Gergő Korszerű Adatbázisok 2014
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=449twsMTrJI A day in big data Gombos Gergő Korszerű Adatbázisok 2014
„Big Daták” Okostelefon GPS és Internetkapcsolattal Szenzorok 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
„Big Daták” Sloan Digital Sky Survey Közösségi hálózatok 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
Milyen „big” a Big Data? 2.7 Zetabyte méretű 2020-ra 50x 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
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
Kihívások http://www.wired.com/insights/wp-content/uploads/2012/11/big_data_660.jpg Gombos Gergő Korszerű Adatbázisok 2014
http://www. ibmbigdatahub http://www.ibmbigdatahub.com/sites/default/files/public_images/Smart16.PNG Gombos Gergő Korszerű Adatbázisok 2014
Túl sok az adat Gombos Gergő Korszerű Adatbázisok 2014
Twitter Gombos Gergő Korszerű Adatbázisok 2014
Twitter Max. 140 karakter hosszú üzenet Geo információk Retweet Korábbi tweet tweetelése Sample API Valós tweetek 1%-a Gombos Gergő Korszerű Adatbázisok 2014
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
Twitter üzenetek elemzése Befolyásos ember keresés Gombos Gergő Korszerű Adatbázisok 2014
Twitter üzenetek elemzése Hír terjedése http://ghergich.com/infographic-examples/harlem-shake-vs-gangnam-style/ Gombos Gergő Korszerű Adatbázisok 2014
Twitter faster than earthquakes http://www.youtube.com/watch?v=0UFsJhYBxzY Gombos Gergő Korszerű Adatbázisok 2014
Twitter adatok http://www.jeffbullas.com/wp-content/uploads/2013/10/sensational-social-mediafacts-and-statistics-behind-Twitter.jpg Gombos Gergő Korszerű Adatbázisok 2014
Twitter adatok Gombos Gergő Korszerű Adatbázisok 2014
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
Kik haszálják? Gombos Gergő Korszerű Adatbázisok 2014
Hadoop történelem 2004 – Google publikálja a MapReduce technikát 2006 – Apache projekt lett Yahoo! támogatással További támogatók: Gombos Gergő Korszerű Adatbázisok 2014
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
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) ZooKeeper (koordinátor) Gombos Gergő Korszerű Adatbázisok 2014
Miért elosztva? Feladat: Olvassunk fel 1TB adatot egy merevlemezről. Mennyi idő szükséges ehhez? Ez 4 óra lenne. Gombos Gergő Korszerű Adatbázisok 2014
approximately 3800 nodes Gombos Gergő Korszerű Adatbázisok 2014
HDFS HDFS = Hadoop Distributed Filesystem Gombos Gergő Korszerű Adatbázisok 2014
HDFS HDFS Split Block 1 Block 2 Block 3 Gombos Gergő Korszerű Adatbázisok 2014
HDFS HDFS replikálás Block 1 Block 1 Block 2 Block 3 Block 2 Block 3 Gombos Gergő Korszerű Adatbázisok 2014
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
Architektúra (1.2.1) Gombos Gergő Korszerű Adatbázisok 2014
Architektúra (2.2) Gombos Gergő Korszerű Adatbázisok 2014
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
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
MapReduce Paradigma: Map: Reduce: 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
Példa Gombos Gergő Korszerű Adatbázisok 2014
További lehetőségek Partitioners Combiners Compression Counters 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
Map public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); context.write(word, one); } Gombos Gergő Korszerű Adatbázisok 2014
Reduce public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterable<IntWritable> values, Context cont) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } context.write(key, new IntWritable(sum)); Gombos Gergő Korszerű Adatbázisok 2014
Elérés Elérés: Belépés: Manager oldalak: monet.inf.elte.hu 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
Parancsok Listázás Kiírja egy fájl tartalmát Betölté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
Hadoop streaming hadoop jar /home/hadoop/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 -numReduceTasks 1 Gombos Gergő Korszerű Adatbázisok 2014
Eclipse plugin Letölteni a szükséges jar-okat http://oktnb16.inf.elte.hu/ggombos/korszeru/ hadoop-eclipse-plugin-1.2.1.jar hadoop-core-1.2.1.jar 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
Hadoop location map/reduce master: dfs master: host: monet.inf.elte.hu port: 10814 dfs master: use M/R Master host OK port: 8020 User name: neptun azonosito Gombos Gergő Korszerű Adatbázisok 2014
Segítség A generált kódban lecseréljük a sorokat erre: conf.setInputFormat(TextInputFormat.class); conf.setOutputFormat(TextOutputFormat.class); FileInputFormat.setInputPaths(conf, new Path("In")); FileOutputFormat.setOutputPath(conf, new Path("Out")); Létező fmappák törlése: FileSystem fs = FileSystem.get(conf); if (fs.exists(new Path(“Outer”))) fs.delete(new Path(“Outer”),true); Gombos Gergő Korszerű Adatbázisok 2014
Futtatás Export -> normal JAR Felmásoljuk monet-re Hadoop jar jar_name.jar Gombos Gergő Korszerű Adatbázisok 2014
Köszönöm a figyelmet!