07.05.2013 Views

UNIDAD ZACATENCO DEPARTAMENTO DE ... - Cinvestav

UNIDAD ZACATENCO DEPARTAMENTO DE ... - Cinvestav

UNIDAD ZACATENCO DEPARTAMENTO DE ... - Cinvestav

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

MapReduce 23<br />

especificamente para este programa. En el código 2.6 se mantienen las configuraciones<br />

por defecto. Posteriormente, se crea un objeto de la clase Job que permite configurar<br />

un trabajo mapreduce. Algunas de las configuraciones que se realizan en un trabajo<br />

mapreduce son: la especificación de las clases que contienen las funciones map y<br />

reduce; el tipo de datos de la clave y el valor que emite la función map; los tipos<br />

de los archivos de entrada y salida; los directorios de entrada y salida; entre otras<br />

configuraciones.<br />

Una vez que el trabajo mapreduce ha sido configurado se envía a ejecutar<br />

al ambiente MapReduce. Existen dos maneras de ejecutar el trabajo mapreduce:<br />

esperando hasta que finalice, o enviarlo a ejecución y continuar con las siguientes<br />

instruciones. Para esperar hasta que el trabajo mapreduce finalice se utiliza el método<br />

waitForCompletion con el parámetro en True. Para ejecutar el trabajo mapreduce sin<br />

esperar su finalización, se utiliza el método submit.<br />

Aunque en este ejemplo no se observa, se pueden crear otros trabajos mapreduce<br />

creando un nuevo objeto de la clase Job. Así mismo, se pueden crear otras clases<br />

que contengan otras funciones map y reduce que esten relacionadas con otros trabajos<br />

mapreduce, con esto se logra ejecutar una serie de trabajos mapreduce de manera<br />

secuencial (si se utiliza el método waitForCompletion) o paralela (si se utiliza el<br />

método submit).<br />

La clase que contiene a la función map del “programa de cuenta” se muestra<br />

en el código 2.7. Observe que la clase implementa la Interfaz Mapper. Una interfaz<br />

en Java contiene la declaración de los métodos sin especificar su implementación.<br />

La implementación de dichos métodos se realiza en la clase que implementa dicha<br />

interfaz. Por tal motivo, al implementar la Interfaz Mapper se debe de implementar<br />

la función map, esta función recibe tres parámetros que son: una clave, un valor y un<br />

contexto. El contexto permite configurar los pares < clave, valor > que se emiten.<br />

La función map se ejecuta de forma iterativa por cada línea de cada archivo de<br />

texto recibiendo como clave el desplazamiento dentro del archivo de entrada y como<br />

valor la línea del archivo. Por cada línea de un archivo de entrada, la función map<br />

<strong>Cinvestav</strong> Departamento de Computación

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!