FANTIN BIG DATA (2)

Post on 19-Feb-2017

1.232 views 2 download

Transcript of FANTIN BIG DATA (2)

1

Corso di programmazione su HadoopScaricare l’ultima release stabile di Hadoop:

http://hadoop.apache.org/common/releases.htmlConfigurazione:

File conf/hadoop-env.shSpecificare le variabili d’ambiente:LINUX: export JAVA_HOME=/usr/local/lib/...

MAC OS: export JAVA_HOME=/Library/Java/Home

Nota: devono sempre essere controllate le impostazioni locali della vostra macchina.

2

Corso di programmazione su HadoopConfigurazione:

File conf/hadoop-env.shOpzionale: Specificare la massima quantità di

memoria assegnabile a Java heap:# The maximum amount of heap to use, in MB.

Default is 1000. export HADOOP_HEAPSIZE=2000

3

Corso di programmazione su Hadoop

Configurazione:File core-site.xmlOpzionale: specificare la directory in cui Hadoop andrà a scrivere l'output temporaneo<property> <name>hadoop.tmp.dir</name>% Sostituire questo valore con la directory specificata <value>/tmp/hadoop-tmp-${user.name}</value> <description>A base for other temporary directories.<description></property>

4

Corso di programmazione su Hadoop

5

Corso di programmazione su Hadoop

Mapper

6

Corso di programmazione su Hadoop

7

Corso di programmazione su Hadoop

8

Corso di programmazione su Hadoop

9

Corso di programmazione su Hadoop

10

Corso di programmazione su Hadoop

11

Corso di programmazione su Hadoop

Esempio word count

12

Corso di programmazione su Hadoop

13

Corso di programmazione su Hadoop

14

Corso di programmazione su Hadoop

15

Corso di programmazione su Hadoop

16

Corso di programmazione su HadoopEsempio word count

package mapred; import java.io.IOException; import java.util.Iterator; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapred.FileInputFormat; import org.apache.hadoop.mapred.FileOutputFormat; import org.apache.hadoop.mapred.JobClient; import org.apache.hadoop.mapred.JobConf; import org.apache.hadoop.mapred.MapReduceBase; import org.apache.hadoop.mapred.Mapper;

17

Corso di programmazione su Hadoop

import org.apache.hadoop.mapred.OutputCollector; import org.apache.hadoop.mapred.Reducer; import org.apache.hadoop.mapred.Reporter; import org.apache.hadoop.mapred.TextInputFormat; import org.apache.hadoop.mapred.TextOutputFormat;

18

Corso di programmazione su Hadooppublic class WordCount { public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { private Text word = new Text(); private IntWritable one = new IntWritable(1); public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { String line = value.toString(); String [] words = line.split(" "); for(String term: words){ word.set(term); output.collect(word,one); } } }

19

Corso di programmazione su Hadooppublic static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { int sum = 0; while (values.hasNext()) { double value = values.next().get(); sum += value; }

20

Corso di programmazione su HadoopIntWritable sumValue = new IntWritable(sum); output.collect(key, sumValue); } } public static void main(String arg[]) throws IOException, ClassNotFoundException, InterruptedException { if (arg.length != 2) { System.out.println("Usage:"); System.out.println("inputPath outputPath"); System.exit(1); } String inputPath = arg[0]; String outputPath = arg[1]; JobConf conf = new JobConf(WordCount.class);

21

Corso di programmazione su Hadoopconf.setJobName("WordCount");conf.setMapOutputValueClass(IntWritable.class); conf.setMapOutputKeyClass(Text.class); conf.setOutputKeyClass(Text.class); conf.setOutputValueClass(IntWritable.class); conf.setMapperClass(Map.class); conf.setCombinerClass(Reduce.class); conf.setReducerClass(Reduce.class); conf.setInputFormat(TextInputFormat.class); conf.setOutputFormat(TextOutputFormat.class);

22

Corso di programmazione su HadoopFileInputFormat.setInputPaths(conf, new Path(inputPath)); FileOutputFormat.setOutputPath(conf, new Path(outputPath)); JobClient.runJob(conf); } }

23

Corso di programmazione su Hadoop

the 26to 15of 14in 9and 9a 9that 7on 7is 7he 6has 6

had 6for 6at 6are 6who 5players 5have 5club 5been 5The 5not 4

Risultato sort: Ashley 4was 3sale 3said 3new 3his 3be3as3….

24

Corso di programmazione su Hadoop

Esempio utilizzando il software GATE

25

Corso di programmazione su Hadoop

26

Corso di programmazione su Hadoop

27

Corso di programmazione su Hadoop

28

Corso di programmazione su Hadoop

29

Corso di programmazione su Hadoop

30

Corso di programmazione su Hadoop

31

Corso di programmazione su Hadoop

32

Corso di programmazione su Hadoop

33

Corso di programmazione su Hadoop

34

Corso di programmazione su Hadoop

35

Corso di programmazione su Hadoop

36

Corso di programmazione su Hadoop

37

Corso di programmazione su Hadoop

38

Corso di programmazione su HadoopEsempio deviazione standard

39

Corso di programmazione su Hadoop

40

Corso di programmazione su Hadoop

41

Corso di programmazione su Hadoop

42

Corso di programmazione su Hadoop

43

Corso di programmazione su Hadoop

44

Corso di programmazione su Hadoop

45

Corso di programmazione su Hadoop