style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Ejemplo MapReduce Hadoop 5

Ya unicamente nos falta la clase main, para poder ejeutar nuestro ejemplo

Tambien es pequena asi que la pongo toda de una vez:

package mx.com.sinapsis.ds.test.ComparaPais;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;

public class MaximaPoblacion extends Configured implements Tool {
       
        public static void main(String[] args)
                    throws Exception
                  {
                    ToolRunner.run(new Configuration(), new MaximaPoblacion(), args);
                  }

        @Override
        public int run(String[] args) throws Exception {
               
                args = new String[]{"input","output"};
               
                if (args.length != 2)
            {
              System.err.println("Usage: Max Poblacion <in> <out>");
              return 0;
            }
            setConf(new Configuration());
            Configuration conf = getConf();        

            Job job = new Job(conf, "compara pais");
            job.setJarByClass(MaximaPoblacion.class);
            job.setMapperClass(MaximaPoblacionMapper.class);
            job.setReducerClass(MaximaPoblacionReducer.class);
            job.setOutputKeyClass(Text.class);
            job.setOutputValueClass(Text.class);
            FileInputFormat.addInputPath(job, new Path(args[0]));
            FileOutputFormat.setOutputPath(job, new Path(args[1]));
            boolean result = job.waitForCompletion(true);
               
               
            return result ? 0 : 1;
        }

}

Aparte de la configuracion, que se nota en el codigo tambien se le pasan los nombres de las clases Map y Reduce, asi como los tipos
de datos para la Key y el Value, en este caso los dos son de tipo Text.

job.setMapperClass(MaximaPoblacionMapper.class)
job.setReducerClass(MaximaPoblacionReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">