Asignatura: Computación Paralela y Grupo Nº: 3
Distribuida
Carrera: Computación Integrantes: Carlos Cadena, Esteban Perugachi,
Nivel y paralelo: 6 – A Jonathan Sánchez
Fecha de práctica: 21/01/2021
Fecha presentación informe: 28/01/2021
Nº Práctica: 3 Informe Nº: 3
TÍTULO DE LA PRÁCTICA: Spark y MapReduce
1. OBJETIVOS:
General: Estudiar los conceptos de Spark y Mapreduce con el fin de poder crear aplicaciones
con los mismos.
Específico: Crear un contador de palabras en paralelo, implementando Spark y MapReduce
2. INTRODUCCIÓN:
Spark
Apache Spark es un framework de programación para procesamiento de datos distribuidos diseñado
para ser rápido y de propósito general. Como su propio nombre indica, ha sido desarrollada en el
marco del proyecto Apache, lo que garantiza su licencia Open Source.
Además, podremos contar con que su mantenimiento y evolución se llevarán a cabo por grupos de
trabajo de gran prestigio, y existirá una gran flexibilidad e interconexión con otros módulos de
Apache como Hadoop, Hive o Kafka.
Parte de la esencia de Spark es su carácter generalista. Consta de diferentes APIs y módulos que
permiten que sea utilizado por una gran variedad de profesionales en todas las etapas del ciclo de
vida del dato.
Dichas etapas pueden incluir desde soporte para análisis interactivo de datos con SQL a la creación
de complejos pipelines de machine learning y procesamiento en streaming, todo usando el mismo
motor de procesamiento y las mismas APIs.
MapReduce
es un modelo de programación para dar soporte a la computación paralela sobre grandes
colecciones de datos en grupos de computadoras y al commodity computing. El nombre del
framework está inspirado en los nombres de dos importantes métodos, macros o funciones en
programación funcional: Map y Reduce. MapReduce ha sido adoptado mundialmente, ya que existe
una implementación OpenSource denominada Hadoop.
MapReduce se emplea en la resolución práctica de algunos algoritmos susceptibles de ser
paralelizados.No obstante MapReduce no es la solución para cualquier problema, de la misma
forma que cualquier problema no puede ser resuelto eficientemente por MapReduce.Por regla
general se abordan problemas con datasets de gran tamaño, alcanzando los petabytes de tamaño.
Es por esta razón por la que este framework suele ejecutarse en sistema de archivos distribuidos
(HDFS).
3. METODOLOGÍA:
Descargamos Docker Desktop desde la página oficial de Docker.
La instalación se comenzará a realizar automáticamente.
En PoweShell procedemos a comprobar que estén habilitadas las características para poder
trabajar con Linux en Windows.
Una vez que se haya terminado de instalar Docker nos mostrará la siguiente interfaz con un
comando que lo utilizaremos más adelante.
Comprobamos en el cmd que se encuentren instaladas las distribuciones de Linux y con el
comando wsl.entramos en el modo root.
Con el comando cd dowloads entramos a la carpeta de descargas en donde se encuentra el
archivo Docker-compose y seguido escribimos el comando docker-compose up.
Escribimos el comando Docker ps para comprobar que se haya instalado la imagen de spark.
Escribimos el comando: docker exec -it downloads_spark_1 bash
En el navegador escribimos la dirección: localhost:8080, donde encontraremos la página de
Spark Master
Escribimos el commando: spark-shell --master spark://155165e0ba11:7077 que una vez que
se haya terminado de ejecutar nos mostrará la imagen de spark y su versión en el cmd
Una vez q se inicializa Spark declaramos la variable val con el nombre texFile lugar donde se
almacenará nuestro archivo de texto.
line.split dividirá las frases en palabras.
Con (“ ”)Dividirá una línea por espacio
La función collect convertirá el archivo en un Array.
El programa se ejecutará imprimiendo y contando las palabras que se encuentran en el
archivo de texto.
DISCUSIONES:
Spark es un framework de programación para procesamiento de datos distribuidos diseñado
para ser rápido y de propósito general. MapReduce es un modelo de programación para dar
soporte a la computación paralela sobre grandes colecciones de datos en grupos, en esta
aplicación pudimos comprobar al aplicar Spark con MapReduce conseguimos leer un archivo
de texto de manera rápida reduciendo el tiempo de ejecución y el tiempo de desarrollo.
Spark y MapReduce facilitan la creación de sistemas distribuidos si comparamos con la
práctica N°1 en donde también creamos una aplicación para leer archivos de texto podemos
notar que con Spark y MapReduce fue mucho más sencillo realizarlo y se ejecuta en menor
tiempo.
4. CONCLUSIONES:
La utilización de frameworks como Spark facilita la creación de sistemas distribuidos
MapReduce facilita el procesamiento y manejo de grandes cantidades de datos.
Se implementó un sistema de contador de palabras de un archivo de texto implementando
Spark y MapReduce.
5. RECOMENDACIONES:
Comprobar que se tengan habilitadas las distribuciones de Linux para poder trabajar en
Windows.
Utilizar los comandos correctamente en el cmd.
6. BIBLIOGRAFÍA:
Apache Spark: Introducción, qué es y cómo funciona | ESIC. (s. f.). Spark. Recuperado 29 de
enero de 2021, de https://www.esic.edu/rethink/tecnologia/apache-spark-introduccion-que-es-
y-como-funciona.
colaboradores de Wikipedia. (2020, 5 noviembre). MapReduce. Wikipedia, la enciclopedia
libre. https://es.wikipedia.org/wiki/MapReduce.
7. AUTOEVALUACIÓN:
Nombre Evaluación Justificación
Carlos Cadena 100% Trabajó de buena manera
investigando el tema,
recopilando información de
diferentes fuentes y apoyó en
la instalación de Spark.
Esteban Perugachi 100% Estuvo pendiente del informe
de la práctica, recopiló
información de ayuda para
comprender mejor el tema y
ayudó con los comandos para
la instalación de Docker.
Jonathan Sánchez 100% Como jefe de grupo repartí las
diferentes actividades a mis
compañeros y traté de
organizar de la mejor manera
posible la exposición y de
ordenar la información para
realizar la práctica y el
contador de palabras.