Foro Formación Hadoop

Curso Online Desarrollador Hadoop

 
Picture of Admin Formación Hadoop
Curso Online Desarrollador Hadoop
by Admin Formación Hadoop - Friday, 21 November 2014, 6:50 PM
 

Dudas sobre el curso online para desarrolladores Hadoop.

Picture of Fernando Agudo
Re: Curso Online Hadoop - Desarrollador
by Fernando Agudo - Monday, 17 November 2014, 5:17 PM
 

En ocasiones vamos a necesitar indicar el nombre del fichero en nuestra salida del Reduce, la manera de hacer esto es la siguiente:

- La clase encarga de realizar esto es MultipleOutputs.

- Para cada valor a escribir le indicaremos el nombre del fichero al cual queremos que vaya ese registro.

public void setup(Context context){
   out =new MultipleOutputs(context);
}

public void reduce(Text key,Iterable values,Context context)throwsIOException,InterruptedException{

for(Text t : values){ out.write(key, t, nombredelfichero);
}
}

protected void cleanup(Context context)throwsIOException,InterruptedException{ out.close();}
Picture of Admin Formación Hadoop
Re: Curso Online Hadoop - Desarrollador
by Admin Formación Hadoop - Friday, 21 November 2014, 7:14 PM
 

Temario completo del curso de Desarrollador Hadoop:

Capítulo 1: Introducción

Capítulo 2: Introducción a Hadoop

Capítulo 3: Hadoop - Conceptos básicos

Capítulo 4: Desarrollo de un programa MapReduce

Capítulo 5: Programación básica con Hadoop Core API

Capítulo 6: Testear aplicaciones MapReduce

Capítulo 7: Rendimiento de un MapReduce

Capítulo 8: Datos de entrada y salida de un MapReduce

Capítulo 9: Resolución de problemas con MapReduce

Capítulo 10: Ecosistema de Hadoop

Picture of Admin Formación Hadoop
Re: Curso Online Hadoop - Desarrollador
by Admin Formación Hadoop - Thursday, 4 December 2014, 6:47 PM
 

Comic para facilitar la comprensión de como funciona Hadoop ( en concreto su sistema de ficheros HDFS)

Picture of Fernando Agudo
Re: Curso Online Desarrollador Hadoop
by Fernando Agudo - Friday, 5 December 2014, 9:59 AM
 

¿Cómo modificar el separador por defecto del KeyValueTextInputFormat ?Si no se indica otro separador, el separador por defecto es el tabulador.

//New API

Configuration conf =newConfiguration();

conf.set("key.value.separator.in.input.line",",");

Job job =newJob(conf);

job.setInputFormatClass(KeyValueTextInputFormat.class);

Picture of Admin Formación Hadoop
Re: Curso Online Desarrollador Hadoop
by Admin Formación Hadoop - Thursday, 11 December 2014, 8:05 PM
 

Ejemplo del WordCount en MapReduce:

   1 
   2         
   3 import java.io.IOException;
   4 import java.util.*;
   5         
   6 import org.apache.hadoop.fs.Path;
   7 import org.apache.hadoop.conf.*;
   8 import org.apache.hadoop.io.*;
   9 import org.apache.hadoop.mapreduce.*;
  10 import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
  11 import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
  12 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
  13 import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
  14         
  15 public class WordCount {
  16         
  17  public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> {
  18     private final static IntWritable one = new IntWritable(1);
  19     private Text word = new Text();
  20         
  21     public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
  22         String line = value.toString();
  23         StringTokenizer tokenizer = new StringTokenizer(line);
  24         while (tokenizer.hasMoreTokens()) {
  25             word.set(tokenizer.nextToken());
  26             context.write(word, one);
  27         }
  28     }
  29  } 
  30         
  31  public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> {
  32 
  33     public void reduce(Text key, Iterable<IntWritable> values, Context context) 
  34       throws IOException, InterruptedException {
  35         int sum = 0;
  36         for (IntWritable val : values) {
  37             sum += val.get();
  38         }
  39         context.write(key, new IntWritable(sum));
  40     }
  41  }
  42         
  43  public static void main(String[] args) throws Exception {
  44     Configuration conf = new Configuration();
  45         
  46         Job job = new Job(conf, "wordcount");
  47     
  48     job.setOutputKeyClass(Text.class);
  49     job.setOutputValueClass(IntWritable.class);
  50         
  51     job.setMapperClass(Map.class);
  52     job.setReducerClass(Reduce.class);
  53         
  54     job.setInputFormatClass(TextInputFormat.class);
  55     job.setOutputFormatClass(TextOutputFormat.class);
  56         
  57     FileInputFormat.addInputPath(job, new Path(args[0]));
  58     FileOutputFormat.setOutputPath(job, new Path(args[1]));
  59         
  60     job.waitForCompletion(true);
  61  }
  62         
  63 }