Prácticas Bigdata: 1. Lanzar Un Proceso Mapreduce Contra El Cluster
Prácticas Bigdata: 1. Lanzar Un Proceso Mapreduce Contra El Cluster
Prácticas BigData
1. Lanzar un proceso MapReduce contra el cluster
• Vamos a usar un fichero de ejemplo de patentes en Estados Unidos,
llamado “cite75_99.txt”. Lo tienes disponible en los recursos del capítulo
• Lo subimos a la carpeta prácticas de HDFS
hdfs dfs -put acite75_99.txt /practicas
• Creamos un programa para trabajar con él. Le vamos a llamar
“MyJob.java”. La idea es agrupar las patentes por el código principal
• Ponemos el siguiente contenido
import java.io.IOException;
import java.util.Iterator;
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.io.LongWritable;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
public void map(LongWritable key, Text value, Context context) throws IOException,
InterruptedException {
www.apasoft-training.com 1
Apasoft Training
public void reduce(Text key, Iterable<Text> values, Context context) throws IOException,
InterruptedException {
job.setMapperClass(MapClass.class);
job.setReducerClass(Reduce.class);
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
System.exit(job.waitForCompletion(true)?0:1);
return 0;
}
www.apasoft-training.com 2
Apasoft Training
System.exit(res);
}
}
www.apasoft-training.com 3