Foro Formación Hadoop

 
 
Imagen de Alfonso Porras Fernández
Ficheros de entrada
de Alfonso Porras Fernández - lunes, 30 de enero de 2017, 20:24
 

Hola a todos, 

mi pregunta es un poco existencial, el tema es que al hacer los ejercicios del módulo 1, cuando he tenido que crear alguno tipo wordcount con una ruta de entrada, digamos /formacionhadoop/desarrollador/cervantes/

entiendo que el proceso debe coger todos los txt que hay en esa ruta recursivamente (tanto los de novela como los de teatro) pero me encuentro que me da error y tengo que modificar la ejecución para especificar más detalle en la ruta de entrada, cambiandola por /formacionhadoop/desarrollador/cervantes/novela/* 

no le había dado importancia pero me he acordado de preguntarlo ahora ya que en el último ejercicio para ejecutar el workflow con HUE me ha vuelto a pasar al poner la variable mapred.input.dir tal cual la indicáis en el ejercicio.

Un saludo y gracias

 
Imagen de Fabiola Carrasco
Re: Ficheros de entrada
de Fabiola Carrasco - martes, 31 de enero de 2017, 08:58
 

Hola Alfonso,

El problema es debido a que dentro del directorio de cervantes existen directorios. Cuando a una aplicación MapReduce le indicamos un directorio de entrada, automáticamente coge y procesa todos los ficheros que hay en ese directorio. El problema viene cuando se encuentra un directorio entre los ficheros (el programa da un error). Para poder procesar recursivamente todo los ficheros de los diferentes directorios habría que modificar el driver para que recorra los directorios e ir añadiendo cada uno de los ficheros.

Otra forma es dándole un patrón al directorio (tal y como has hecho con el *). Podríamos poner /input/*.txt para que únicamente cogiera los ficheros txt y no los directorios.

De paso puntualizar que los ficheros o directorios que comienzan por "." o "_" no son procesados por la aplicación MapReduce.

Un saludo,