Foro Formación Hadoop

 
 
Imagen de Alexandre PM
Número de reducers dinámico
de Alexandre PM - miércoles, 11 de octubre de 2017, 22:07
 

Hola,

Pregunta chorra :-)

Acabo de revisar el vídeo de partitioners y reducers, y el ejemplo de los países (a cada país se le asigna un reducer). En este caso, el número de reducers a utilizar se sabe de antemano (en base al número de países, que también se sabe).

¿Existe alguna forma de que, en base a los datos de los ficheros y sin saber de antemano cuántas regiones/países existen, establecer un número de reducers dinámico en el driver, para luego gestionar los partitioners en base a los países que existan en dichos datos?

Por ejemplo, si sabemos que nuestros ficheros procesan ventas en países de Europa (imaginemos que hoy 20 pero mañana 30), pero no sabemos de antemano cuántos habrá en los ficheros, y queremos que cada país se procese en un reducer por país (20 hoy y 30 mañana).

Espero que lo haya explicado de forma correcta :-)

Saludos

 
Imagen de Fernando Agudo
Re: Número de reducers dinámico
de Fernando Agudo - viernes, 13 de octubre de 2017, 08:50
 

Hola Alexandre,

 

El número de Reducers hay que definirlo si o si en el driver, por lo que para indicar un número dinámico de reducers, tendría que ser en base a alguna condición/comprobación que indiques en el driver.

Por ejemplo, tener un fichero/variable donde estén indicados los nombres de los países, el cual leeremos para contar el número de países y el resultado de este conteo será la variable asignada al número de reducers. Para este ejemplo, lo que si deberás hacer es ir modificando el fichero/variable de los países cada vez que elimines o añadas uno.

Espero haberte aclarado la duda.

Un saludo,

Imagen de Alexandre PM
Re: Número de reducers dinámico
de Alexandre PM - sábado, 14 de octubre de 2017, 07:43
 

Hola

TIene sentido lo que comentas. Se podría pensar en ejecutar dos jobs MapReduce sobre los ficheros, uno para obtener la lista de valores (países) y el segundo para procesarlos con un número de reducers en base al número de países obtenido.

Muchas gracias