Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaMihály Magyar Megváltozta több, mint 10 éve
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 { 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 { public void reduce(Text key, Iterable 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
Feladat7 (Csoportosítás) I. 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)
25
Feladat7 (Csoportosítás) II. Map(kulcs, érték): (user, szó) Reducer: Init H = HashMap 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)
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.