1 / 28

HADOOP

HADOOP. Korszerű Adatbázisok 2013. Elérés, Belépés. Elérés: eszakigrid109.inf.elte.hu Belépés: felhasználó/jelszó: neptun-kód Manager oldalak: http://eszakigrid109.inf.elte.hu:50030 http://eszakigrid109.inf.elte.hu:50070. Emlékeztető.

Download Presentation

HADOOP

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. HADOOP Korszerű Adatbázisok 2013

  2. Elérés, Belépés • Elérés: • eszakigrid109.inf.elte.hu • Belépés: • felhasználó/jelszó: neptun-kód • Manager oldalak: • http://eszakigrid109.inf.elte.hu:50030 • http://eszakigrid109.inf.elte.hu:50070

  3. Emlékeztető • Map: Alakítsuk a bementi adatokat (kulcs, érték) párokra • Reduce: Alakítsuk az adott kulcshoz tartozó adatokat a kimeneti formára

  4. HADOOP folyamat

  5. HDFS 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

  6. Adathalmaz • tweet_dec24 • December 24-i tweetek • tweet_id, user_id, lat, lon, lang, created_at, text • mentioned • user_id, mentioned_user_id • interval • from, to

  7. Fordítás, futtatás, eredmény • Fordítás • forditas.sh • javac -classpath /home/hadoop/hadoop-1.0.4/hadoop-core-1.0.4.jar -d classes/ *.java • jar -cvf hadoopRun.jar -C classes/ . • Futtatás • run.sh • hadoop jar hadoopRun.jar korszeru.empty_mapred /user/hadoop/korszeru/input/dec24_tweet.txt feladatOUT1 • Eredmény • hadoop fs –cat feladatOUTX/* (X=1..10)

  8. WordCount példa 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); } } }

  9. WordCount példa 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)); } }

  10. WordCount példa Main public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = new Job(conf, "ggombos_wordcount"); job.setJarByClass(WordCount.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); //job.setMapOutputKeyClass(Text.class); //job.setMapOutputValueClass(Text.class); job.setMapperClass(Map.class); job.setReducerClass(Reduce.class); job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); job.waitForCompletion(true); }

  11. Feladat1 (Számolás) • Hány tweet volt az egyes nyelveken?

  12. Feladat1 (Számolás) • Map (kulcs, érték): • (nyelv, 1) //pl: (‘en’,1) • Reducer • összeadja az értékeket • (nyelv, szum) //pl: (‘en’, 5)

  13. Feladat2 (Legyűjtés) • Full inverted index (a szó melyik tweetben, hányadik helyen található)

  14. Feladat2 (Legyűjtés) • Map (kulcs, érték): • (szó, ‘(tweet_id, sorszam)’) • pl: (‘hello’, ‘(283300321072140290,15)’) • Reduce • összegzi a szavakhoz tartozó információkat • pl: (‘hello’, ‘(283300321072140290,15), (2833003210721404568,11) ’)

  15. Feladat3 (Szűrés) • Keressük meg a XMAS szót tartalmazó tweeteket

  16. Feladat3 (Szűrés) • Map (kulcs,érték): • (‘XMAS’, tweet_szoveg) • Reducer • sorszámozva kiírja a szovegeket • (sorszám, tweet_szoveg)

  17. Feladat4 (Elosztott számolás) • Számoljuk meg a négyzetszámokat 1..10 000 000 között

  18. Feladat4 (Elosztott számolás) • Map (kulcs, érték): • Összegzi a négyzetszámokat az adott intervallumba • (‘szum’, db) • //Math.sqrt(i) % 1.0 == 0.0 • Reducer: • Összegzi a részsorozatok • (‘szum’, db)

  19. Feladat5 (Rendezés) • Rendezzük a 9-10 óra közötti tweeteket időrendbe

  20. Feladat5 (Rendezés) • Map (kulcs, érték): • (idő, szöveg) • adott intervallumon belül • SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); • dateStr = formatter.parse(date); • dateStr.after(formatter.parse("12/24/2012 00:09:00")) dateStr.before(formatter.parse("12/24/2012 00:10:00")) • Reducer: • Összegzi az egyes tweeteket, ami ugyanabba az időpontban vannak • (idő, tweetek valamivel elválasztva)

  21. Feladat6 (Gráf feldolgozás) • Ki-kit említett? Kimenő, bemenő élek egy adott user-re

  22. Feladat6 (Gráf feldolgozás) • Map(kulcs, érték): • (user,”>,”+mentioned) • (mentioned,”<,”+user) • Reducer: • Összegyűjti a bejövő/kimenő éleket • (id, bejövő idk „|” kimenő idk)

  23. Feladat7 (Csoportosítás) • User-ek mely szavakat használják leggyakrabban (ditinctelve a user szavai)

  24. Job1 Map(kulcs, érték): („szó,user”,1) Reducer: összegezzük, max szavat kiírjuk minden user-ra (szó, user) Job2 Map(kulcs, érték): (szó, 1) Reducer: (szó, sum) Feladat7 (Csoportosítás) I.

  25. Feladat7 (Csoportosítás) II. • Map(kulcs, érték): • (user, szó) • Reducer: • Init • H = HashMap<String, Integer> • Reduce • H2-ba gyűjtjük a szavakat • Összeszámoljuk • H-ba belerakjuk, az egyes szavakhoz a sum értéket. • CleanUp • foreach (H.key, H.value)

  26. Feladat8 (Korreláció keresés) • Melyik szó melyik szóval áll gyakran együtt

  27. Feladat9 (MaxKer) • Keressük meg a legtöbbet tweetelt személyt (2job)

  28. Feladat10 (lánc keresés) • Említési lánc (mentioned)

More Related