Cómo enviar tareas informáticas MapReduce de Yarn a través de programas Java
El siguiente es el programa principal de MapReduce. Hay varios puntos que deben mencionarse:
1. En el programa, configuraré el formato de archivo de lectura en WholeFileInputFormat, es decir. , el archivo no se procesará.
2. Para controlar el procesamiento de reducción, el formato de la clave de salida del mapa es una combinación de formatos de clave. A diferencia de la
3. Para adaptarse a la combinación de teclas, restablezca la función de agrupación, es decir, GroupComparator. La regla de agrupación es que siempre que la clave1 en TextPair sea la misma (no es necesario que la clave2 sea la misma), los datos se asignan a un contenedor de restauración. De esta manera, cuando los datos con la misma clave1 ingresan al contenedor de restauración, la clave2 desempeña el papel de identificador de datos.
paquete web.Hadoop;
importar java.io.IOException;
importar org.apache.hadoop.conf.JobConf; >importar org.apache.hadoop.mapred.JobStatus;
importar org.apache.hadoop.mapreduce.Job
importar org.apache.hadoop.mapreduce.lib.input; FileInputFormat;
importar org.apache.Utils;
clase pública GEMIMain {
public GEMIMain(){
trabajo = null;
}
trabajo de trabajo público;
clase estática pública NamePartitioner extiende
Partitioner<TextPair, BytesWritable> {
@Override
public int getPartition(Clave TextPair, valor BytesWritable,
int numPartitions) {
return Math.abs(key.getFirst(). hashCode() * 127) % numParticiones;
}
}
}
/**
* La clase de configuración de agrupación hace que dos TextPairs pertenezcan al mismo grupo siempre que sus primeras claves sean las mismas. Sus valores luego se colocarán en un iterador de valores,
* y luego en el método de reducción del reductor.
*
* @author hduser
*
*/
clase estática pública GroupComparator extiende WritableComparator {
public GroupComparator() {
super(TextPair.class, true);
}
@Override
public int compare(WritableComparable a, WritableComparable b) {
TextPair t1 = (TextPair) a;
TextPair t2 = (TextPair) b;
// Si los resultados de la comparación son iguales, devuelve 0; si son diferentes, devuelve -1
devuelve
ClassNotFoundException, InterruptedException {
Configuración. conf = new Configuration();
// Establece la variable de salida en conf para que esté disponible en la función de reducción
conf.set("outputPath", args[args.length - 1] .toString());
// Establece la carpeta HDFS donde se ubican los archivos de calidad del producto para cada tarea. Es la carpeta donde se encuentra el archivo de calidad
conf.set("qualityFolder", args[args.length - 2].toString());
//Si ejecuta en el Servidor, necesita obtener la ruta raíz del proyecto web; si lo depura como una aplicación Java, lee la ruta raíz de /etc/hadoop-2.opt/hadoop-2.5.0/etc/hadoop/; directorio
//MapReduceProgress mprogress = new MapReduceProgress();
//String rootPath= mprogress.rootPath;
String rootPath="/opt/hadoop- 2.5.0/etc/hadoop/";
conf.addResource(nueva ruta(rootPath+"yarn-site.xml"));
conf.addResource(nueva ruta(rootPath+) "hilo -site.xml"));