“Conocimiento Programación>Lenguajes De Programación

Cómo construir un índice invertido con MapReduce

2014/1/7
MapReduce es un modelo de programación paralela desarrollada en Google para los conjuntos de datos de gran tamaño . Procesa los datos en fragmentos más que en orden secuencial. Al hacerlo , se basa en un mapa de funciones de entrada emparejados ( teclas ) y los valores que a continuación pone a través de la función reduzca - por lo tanto , su nombre - para hacer más fácil de entender los datos . En lugar de proporcionar la función de mapa con una clave y un valor , un pares de índices invertidos palabras y los documentos para la búsqueda de texto. Puede utilizar índices invertidos en MapReduce para crear un índice para una búsqueda por palabra clave , por ejemplo. Instrucciones
1

Escriba el siguiente código para el mapa de funciones :

pública InvertedIndexerMapper clase estática se extiende MapReduceBaseimplements Mapper { palabra texto estático final privado = new Texto ( ) , la ubicación del texto estático final privado = new Texto ( ) ;

mapa public void (clave LongWritable , Texto val, OutputCollector , periodista periodista ) throws IOException { FileSplit FileSplit = ( FileSplit ) reporter.getInputSplit (); string nombre_archivo = fileSplit.getPath () getName (); location.set ( fileName ) ; High Line cuerdas

- val.toString ( ) . ITR StringTokenizer = new StringTokenizer ( línea. toLowerCase ()) , mientras que ( itr.hasMoreTokens ()) { word.set ( itr.nextToken ()); output.collect (word , ubicación) ;} } }
2

Escriba el siguiente código de la función de reducir :

pública InvertedIndexerReducer clase estática se extiende MapReduceBaseimplements Reductor { public void reducir (tecla de texto , valores Iterator , OutputCollector , periodista periodista ) throws IOException { booleano primero = true; StringBuilder toReturn = new StringBuilder (); while ( values.hasNext ()) { if ( primero ) toReturn.append (", "); ! primero = false; toReturn . append ( . values.next () toString ()) ;} output.collect ( , nuevo texto fundamental ( toReturn.toString ()) ) ;} }
3

Copiar el código para completar el índice invertido :

void (String [] args ) public static throws IOException { if ( args.length < 2 ) { System.outprintln ( "Uso: InvertedIndex < , ruta de salida > ") ; System.exit ( 1 ) ;} JobConf conf = new JobConf ( InvertedIndex.class ) ; conf.setJobName ( " InvertedIndex ");

conf.setOutputKeyClass ( Text.class ) ; conf.setOutputValueClass ( Text.class ) ;

conf.setMapperClass ( InvertedIndexerMapper.class ) ; conf.setReducerClass ( InvertedIndexerReducer.class ) ;
FileInputFormat.setInputPaths

( conf, nueva ruta ( args [ 0 ])) ; FileOutputFormat.setOutputPath ( conf, nueva ruta ( args [ 1 ] )); try { JobClient.runJob ( conf ) ; } catch ( Exception e ) { e.pringStackTrace () ;} }

Lenguajes De Programación
Cómo configurar los módulos de CTS
¿Cómo agrego un nuevo teclado de idioma?
Cómo convertir archivos CPP a EXE
Tutorial Hola Mundo
Cómo solucionar el error de sintaxis 1087 Con Movimiento Juego en Flash CS3
Rampa Filter en MATLAB
Cómo hacer columnas mediante DIV Tags
Cómo crear marcas de tiempo en los archivos Batch
Conocimiento de la computadora © http://www.ordenador.online