Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Como construir um índice invertido com MapReduce
MapReduce é um modelo de programação paralela desenvolvida em Google para grandes conjuntos de dados. Ele processa dados em blocos e não em ordem seqüencial. Ao fazer isso , ele conta com um mapa de funções de entrada emparelhados (teclas) e valores que , em seguida, coloca através da função de reduzir - assim , o seu nome - para tornar os dados mais fáceis de entender . Em vez de fornecer a função de mapa com uma chave e valor, um pares índice invertido palavras e documentos para busca de texto. Você pode usar índices invertidos em MapReduce para criar um índice para uma pesquisa de palavra-chave , por exemplo. Instruções
1

Digite o seguinte código para a função mapa :

InvertedIndexerMapper público classe estática estende MapReduceBaseimplements Mapper { palavra do texto final static privado = new Texto ( ) , a localização do texto final static privado = new Texto ( );

mapa public void (tecla LongWritable , Texto val, saída OutputCollector , Reporter repórter ) throws IOException { FileSplit FileSplit = ( FileSplit ) reporter.getInputSplit (); fileName string = fileSplit.getPath () getName (); location.set ( fileName );

linha string - val.toString (); . StringTokenizer itr = new StringTokenizer ( line. toLowerCase ()); enquanto ( itr.hasMoreTokens () ) { word.set ( itr.nextToken ()); output.collect (word, localização );} }}
2

Digite o seguinte código para a função de reduzir :

InvertedIndexerReducer público classe estática estende MapReduceBaseimplements Redutor { public void reduzir (tecla de texto, valores Iterator , saída OutputCollector , Reporter repórter ) throws IOException { boolean primeiro = true; StringBuilder toReturn = new StringBuilder (); while ( values.hasNext ()) {if (primeiro) toReturn.append ("," ); ! primeiro = false; toReturn . append ( . values.next toString () ()); } output.collect (key, novo Texto ( toReturn.toString ())) ;}}
3

Digite o seguinte código para completar o índice invertido :

void main ( string [ ] args ) public static throws IOException {if ( args.length < 2) { System.outprintln ( "Uso: InvertedIndex < ; caminho de saída > " ) ; System.Exit ( 1 ) ; } JobConf conf = novo 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, novo Path ( args [0] ) ); FileOutputFormat.setOutputPath ( conf, novo Path ( args [ 1] ) ); try { JobClient.runJob ( conf );} catch (Exception e) { e.pringStackTrace ();} }

Anterior :

Próximo : No
  Os artigos relacionados
·Quando você usar uma instrução If-Then -Else sobre u…
·Como fazer Pelúcia Animais em SolidWorks 
·As diferenças entre hasEventListener & willTrigger 
·Como imprimir DOSEMU em Dot Matrix 
·Microsoft C Certificação da Sharp 
·Como desativar o Formulário de Rastreamento da Oracle 
·O que é uma conversão Maildir 
·Qual é o formato MARC 
·MATLAB entrada Analisando 
·Como construir um Developer Network 
  Artigos em destaque
·Como conectar C # para o MS Excel 
·Como fazer engenharia reversa no Visual C 
·Como Chegar Rato X & Y em ActionScript3 
·Como converter Epoch Tempo em C + + 
·Função C estática em linha 
·Como usar a função strerror em C + + 
·Como faço para gravar um arquivo CSV em C # 
·Como fazer Matrizes em C + + 
·Como limpar tela antes de um novo loop em um CPP 
·Como posso Adicionar referência da Web para um C # apl…
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados