MapReduce dos formas de ejecutar programas en hadoop

Antes de aprender el conocimiento del periodo hadoop de tiempo para aprender las bases teóricas de la operación real, al mismo tiempo, puede ser más hábil, ado se dijo para ejecutarse en uno de los hadoop mayoría de las palabras sencillas programa de recuento


En primer lugar me gustaría pegar el código fuente del programa para su código de referencia se divide en tres partes escritas en Ejecutar, mapa fase, reducir etapa


Mapa:


  
  
  1. empaquetar wordsCount;
  2. importación java.io.IOException;
  3. importación java.util.StringTokenizer;
  4. importación org.apache.hadoop.io.IntWritable;
  5. importación org.apache.hadoop.io.LongWritable;
  6. importación org.apache.hadoop.io.Text;
  7. importación org.apache.hadoop.mapreduce.Mapper;
  8. público de clase WordsMapper extiende Mapper < LongWritable , texto , texto , IntWritable > {
  9. @Anular
  10. protegida nula mapa (clave LongWritable, Valor de texto, Mapper <LongWritable, texto, texto, IntWritable> contexto .Context)
  11. lanza IOException, InterruptedException {
  12. línea String = value.toString ();
  13. StringTokenizer st = nuevo StringTokenizer (línea);
  14. mientras que (st.hasMoreTokens ()) {
  15. palabra String = st.nextToken ();
  16. context.write ( nuevo texto (palabra), nueva IntWritable ( 1 ));
  17. }
  18. }
  19. }




Reducir:


  
  
  1. empaquetar wordsCount;
  2. importación java.io.IOException;
  3. importación org.apache.hadoop.io.IntWritable;
  4. importación org.apache.hadoop.io.Text;
  5. importación org.apache.hadoop.mapreduce.Reducer;
  6. público de clase WordsReduce extiende Reductor < texto , IntWritable , texto , IntWritable > {
  7. @Anular
  8. protegida vacío reducir (clave de texto, Iterable <IntWritable> iterador,
  9. Reductor <texto, IntWritable, texto, IntWritable> contexto .Context) lanza IOException, InterruptedException {
  10. // método TODO de talones que generan automáticamente
  11. int I = 0 ;
  12. para (IntWritable i: iterador) {
  13. suma = suma + i.get ();
  14. }
  15. context.write (clave, nueva IntWritable (suma));
  16. }
  17. }



Correr:


  
  
  1. empaquetar wordsCount;
  2. importación org.apache.hadoop.conf.Configuration;
  3. importación org.apache.hadoop.fs.Path;
  4. importación org.apache.hadoop.io.IntWritable;
  5. importación org.apache.hadoop.io.Text;
  6. importación org.apache.hadoop.mapreduce.Job;
  7. importación org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
  8. importación org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
  9. importación org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
  10. importación org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
  11. public class Run {
  12. pública estática vacíos principales (args String []) lanza la excepción {
  13. // método TODO de talones que generan automáticamente
  14. Configuración Configuración = nueva configuración ();
  15. Profesión Profesión = nuevo trabajo (configuración);
  16. job.setJarByClass (Run.class);
  17. job.setJobName ( "cuentan palabras!" );
  18. job.setOutputKeyClass (Text.class);
  19. job.setOutputValueClass (IntWritable.class);
  20. job.setInputFormatClass (TextInputFormat.class);
  21. job.setOutputFormatClass (TextOutputFormat.class);
  22. job.setMapperClass (WordsMapper.class);
  23. job.setReducerClass (WordsReduce.class);
  24. FileInputFormat.addInputPath (trabajo, nueva trayectoria ( "hdfs: //192.168.1.111: 9000 / usuario / entrada / wc /" ));
  25. FileOutputFormat.setOutputPath (trabajo, nueva trayectoria ( "hdfs: //192.168.1.111: 9000 / usuario / resultado /" ));
  26. job.waitForCompletion ( verdadero );
  27. }
  28. }

Ejecutar el interior de las rutas de entrada y de salida en función de su modificado para

Este programa no tendrá que explicarlo se puede encontrar en todas partes


En primer lugar ejecutar en hadoop este programa de dos maneras


Método uno: para compilar su propio software y hadoop conectado (utilizo a MyEclipse enlace hadoop), ejecute el programa directamente. tutoriales MyEclipse estarán conectados hadoop daré un enlace para su referencia al final del artículo.




Ver el siguiente mensaje que significa que tienen éxito , entonces, entonces su salida de la plegadora, que será capaz de ver los resultados de la operación


El segundo archivo que es la salida de contenido





El segundo método: la mapreduce empaquetado en un fichero JAR

Aquí un método discurso breve de los envases



A continuación, el siguiente paso puede completarse


En los archivos jar de embalaje para instalar su máquina hadoop (mi grupo hadoop está instalado en la máquina virtual Linux) después de usar SSH pase sobre el frasco:


Hadoop archivo ejecutable en el directorio bin bajo el directorio de instalación de Hadoop, y luego hacer lo siguiente en él:


Bajo el comunicado para explicar mi concha


/home/xiaohuihui/wordscount.jar: la ubicación del archivo JAR después de la (ubicación de la máquina virtual de difusión) paquete

wordsCount / Ejecutar: El nombre del lugar de su paquete frasco principal función (función principal es Run.class) puede abrir el visor de archivo jar sabrá


También puede agregar una ruta de entrada y salida de archivos, pero que he creado después de esta declaración en mi programa

Ver la siguiente salida después de la cáscara si se ejecuta la declaración anterior, entonces felicitaciones a usted, el éxito! !



Se puede ver los resultados en su Eclipse conectados vista hadoop, también puede hdfs página para ver el sistema de archivos (localhost: 50070).


También hay un paso muy importante es, antes de ejecutar para asegurar que su hadoop ha comenzado, lo que pueda para ver si su proceso de hadoop cúmulo ha sido iniciado por JPS



Eclipse 连接 hadoop: http: //blog.csdn.net/xjavasunjava/article/details/12320045


Publicado 31 artículos originales · ganado elogios 0 · Vistas 855

Supongo que te gusta

Origin blog.csdn.net/weixin_45678149/article/details/104978864
Recomendado
Clasificación