0% encontró este documento útil (0 votos)
59 vistas8 páginas

Taller MapReduce

El documento describe un taller sobre MapReduce. Explica que MapReduce es un modelo de programación distribuida que permite procesar grandes cantidades de datos de forma paralela. Describe las funciones Map y Reduce, indicando que Map procesa los datos y Reduce los combina. También resume los pasos para implementar MapReduce usando NetBeans y un artículo como datos de entrada.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
59 vistas8 páginas

Taller MapReduce

El documento describe un taller sobre MapReduce. Explica que MapReduce es un modelo de programación distribuida que permite procesar grandes cantidades de datos de forma paralela. Describe las funciones Map y Reduce, indicando que Map procesa los datos y Reduce los combina. También resume los pasos para implementar MapReduce usando NetBeans y un artículo como datos de entrada.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TALLER MAP REDUCE

Informe Taller MapReduce

Diego Manuel Montero Mejía


Jenny Catalina Sua Quimbayo

Universidad Central
Facultad de Ingeniería y Ciencias Básicas
Departamento de Ingeniería de Sistemas
Bogotá, Colombia
2020
MapReduce
Es un modelo de programación distribuida que permite el procesamiento masivo de datos a gran escala
de forma paralela. Fue diseñado y desarrollado originalmente por Google (2004) como una alternativa
escalable y tolerante a fallos para el procesamiento masivo de datos y se popularizó por la
implementación open source Apache Hadoop. Este modelo se fundamenta en las funciones Map( ) y
Reduce( ), utilizadas comúnmente en los lenguajes de programación pero con finalidades diferentes.

La popularidad del modelo viene debido a su uso inicial como un método de cálculo dentro del Álgebra
Lineal. Posterior a ello, debido a la preocupación de la manipulación de grandes cantidades de datos,
llevó a crear algoritmos y frameworks capaces de poder procesar cantidades considerables de datos.
Entre las primeras aplicaciones capaces de programar MapReduce emergió Hadoop como favorito,
diseñado inicialmente por Doug Cutting.

Como se dijo inicialmente, MapReduce divide el procesamiento en dos funciones: Map y Reduce. Cada
una de estas fases utiliza pares ​<clave - valor>​ com entradas y salidas.

Función map( )
La función map( ) tiene como característica principal trabajar sobre grandes volúmenes de datos. Estos
datos son divididos en dos o más partes. Cada una de estas partes contiene colecciones de registros o
líneas de texto. Una función map() es ejecutada para cada porción de datos por separado, con la
finalidad de calcular un conjunto de valores intermedios basados en el procesamiento de cada registro.
MapReduce agrupa los valores de acuerdo a la clave intermedia y posteriormente los envía a la función
reduce ().

Función reduce( )
La función reduce( ) se ejecuta para cada elemento de cada lista de valores intermedios que recibe. El
resultado final se obtiene mediante la recopilación e interpretación de los resultados de todos los
procesos que se ejecutaron.
Cuando se inicia la función reduce, la entrada se encuentra dispersa en varios archivos a través de los
nodos de las tareas Map. Los datos obtenidos en la fase Map, se ordenan para que los pares ​<clave -
valor> sean contiguos, esto hace que la operación Reduce se simplifique debido a que el archivo se lee
secuencialmente. Por lo tanto, ​n archivos de entrada generarán ​m mapas de tareas para ser ejecutados,
y cada mapa de tareas generará tantos archivos como tareas reduce estén configuradas en el sistema.

Figura 1:​ Funcionamiento de MapReduce

Implementación de MapReduce
​ n NetBeans IDE. Luego se deberán
1. Se debe crear un proyecto con el nombre de ​MapReduce e
crear dos paquetes a los cuales llamaremos ​Input y​ ​MapReduce​.
Dentro del paquete ​Input s​ e encuentra un archivo de texto plano, el cual contiene el archivo de
entrada, y es allí mismo donde se ubicaran los archivos generados al ejecutar el proyecto.
Dentro del paquete ​MapReduce s​ e encuentra el archivo con todo el código donde se realiza la
lógica de la ejecución del MapReduce, con los métodos necesarios para la ejecución.

2. El archivo de entrada ubicado en el paquete ​Input contiene un artículo realizado por unos
compañeros de la Universidad Central sobre los riesgos, vulnerabilidades y tipos de ciberataques
para la materia de Opción de Grado II. Se utiliza este artículo como archivo de entrada ya que es
muy extenso y nos permitirá observar el correcto funcionamiento del MapReduce. A continuación
podemos observar parte del archivo:

3. La clase denominada MapReduce ubicada en el paquete ​MapReduce c​ ontiene los diferentes


métodos para la ejecución de MapReduce, los cuales serán explicados a continuación.
Map:​ El método ​map( )​ es el encargo de la lectura del archivo de entrada, el cual llamamos
input.txt​ y está ubicado en el paquete ​Input.​
splitWords:​ El método​ splitWords( )​ nos permite crear un archivo al cual se denominó map.txt y
es el que nos permite crear las ​<clave - valor> ​a las cuales se les está dando un valor entero
igual a 1.

Reduce:​ El método reduce( ) lee el archivo map.txt que se creó en el método splitWords( ) y se
ejecuta para cada elemento de cada lista de valores intermedios que recibe y genera las ​<clave -
valor> c​ omo salida en el archivo denominado output.txt.
Main:​ El método main( ) es el encargado de ejecutar todos los métodos anteriores, en ella se
realiza el respectivo llamado a cada método para la ejecución exitosa del MapReduce.

4. Finalmente se realiza la ejecución del main para correr el proyecto. Al realizar la ejecución, como
lo explicamos en los métodos anteriores se realizará la creación de los archivos ​Map.txt​ y
Output.txt​.

Map.txt:​ El archivo ​map.txt​ tendrá el mapeo de los datos que se han obtenido del archivo de
entrada en el archivo​ Input.txt,​ cada división o mapeo de los datos se ve como una la lista de
datos tipo ​<clave , valor> ​los cuales tienen todos el valor de 1, definido previamente.
Output.txt:​ El archivo output.txt recibe los datos enviados desde el archivo map.txt, reducidos
gracias al resultado del mapeo, donde podemos observar la cantidad de veces que la clase o
dato se repite respectivamente.

Bibliografía
● Olmedo Y, (2012). ​¿Qué es MapReduce?​. SolidQ.
https://blogs.solidq.com/es/business-analytics/que-es-mapreduce/

● Hernández, A. Hernández, A. (2015). Acerca de la aplicación de MapReduce + Hadoop en el


tratamiento de Big Data. ​Revista Cubana de Ciencias Informáticas, 9(3), 49-62.​
http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992015000300004&lng=es&tlng=e
s
Conclusiones
● Se logra evidenciar el funcionamiento de MapReduce en un artículo con una gran cantidad de
datos.
● Se evidenció la descomposición de los datos con su respectiva clave-valor.
● Después de la ejecución del proceso nos indica que es un proceso muy rápido

También podría gustarte