FANTIN BIG DATA (2)
-
Upload
fantin-stefano -
Category
Documents
-
view
1.232 -
download
2
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
46
Corso di programmazione su Hadoop
Continua su:http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/