Completar en Los Campos Diseñados El Tema Propuesto

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

UNIVERSIDAD NACIONAL DEL ALTIPLANO

FACULTAD DE INGENIERÍA MECÁNICA


ELECTRICA, ELECTRÓNICA Y SISTEMAS
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS

“DESARROLLO DE UN FRAMEWORK PARA ALGORITMOS


GENÉTICOS EN SPARK”

INFORME

CURSO: PARALELISMO, CONCURRENCIA Y SISTEMAS DISTRIBUIDOS.

PRESENTADO POR: NESTOR ARMANDO QUISPE QUISPE

EMERSON EDWARD VILLALTA QUISPE

MILAGROS YESENIA CONDORI QUISPE

DONCENTE: ING. DONIA ALIZANDRA RUELAS ACERO

PUNO-PERU

2021
¿Cuál es su necesidad?

Apache Spark fue desarrollado sobre el anterior y consiste en un framework que

optimiza el cálculo de operaciones en clusters a través de sus estructuras de datos.

Para este trabajo haremos uso de Spark y su estructura de datos primaria: las

RDD, una abstracción de datos distribuidos con evaluación perezosa que posibilita un

cálculo 100 veces más rápido que el de Hadoop Map-Reduce.

¿Cómo lo utiliza?

Apache Spark generalmente estará montado sobre un sistema de archivos

distribuidos. Para este estudio en concreto contamos con YARN, el gestor de recursos de

Hadoop.

Trabajar en entornos distribuidos supone la necesidad de ofrecer al desarrollador

cierto grado de control sobre las dependencias de su programa y sus versiones. Por este

motivo YARN ejecuta cada trabajo en un entorno individual para cada usuario, permitiendo

que varios proyectos con necesidades distintas puedan convivir en el mismo espacio.

Volumen

Las primeras pruebas con el modelo de islas, cuyos resultados aparecen reflejados

en la figura mostraron datos prometedores. La ejecución fue realizada para conjuntos de

750 viajeros con 250 paquetes, comparando una población de 200 individuos a un hilo

contra varios conjuntos de 3 poblaciones de 200 cada una. Escogemos ese número de

poblaciones porque, como mencionamos en el apartado 2, nuestro cluster posee un

maestro y tres trabajadores.


Los modelos de islas comparados fueron tres: con clustering, migración de 10 in-

dividuos y una tercera versión sin comunicación entre las colonias, con el objetivo de

comprobar que una posible mejora no viniera únicamente dada por una mayor cobertura

del espacio de soluciones. Tanto el clustering como la migración tenían lugar cada 100

iteraciones.

Finalmente pudimos experimentar con instancias del problema de 500 paquetes

para 1500 viajeros, 1000 paquetes para 3000 viajeros y 2000 paquetes para 6000 viajeros,

en todos los casos aumentando el volumen de la población proporcionalmente. La

instancia de 2000 paquetes no pudo ser completada con clustering, ya que las constantes

caídas derivadas del problema de memoria mencionado lo hacían inviable.

La relación entre los resultados ofrecidos se asemejaba a la mostrada en la figura

no obstante la versión local con un único hilo siempre daba mejores tiempos que la versión

distribuida. Esto se debe a los siguientes motivos:

Variedad

Velocidad

En este capítulo hemos explicado que Python, pese a no ser tan rápido como otros

lenguajes, ofrece un soporte y comodidad de implementación que lo hacen idóneo para

casos en los que necesitamos centrarnos en el propio algoritmo.

A la hora de pedir un trabajo a Spark es necesario crear un entorno virtual en el

que encapsular las dependencias del proyecto, que será distribuido entre todos los nodos

del cluster. Esta forma de proceder ofrece a equipos de varios desarrolla- dores la

posibilidad de coexistir en el mismo entorno sin alterar el espacio de los demás.

Este proyecto ha adaptado el modelo de algoritmo genético paralelo en islas, que

son distribuidas como clases de Python gracias a las RDD de Spark. Colony es la clase

que actúa como colonia, gestionando las operaciones internas de la misma, y puede actuar
de forma independiente o como una isla del modelo distribuido. Master hace la tarea de

administrar las colonias gracias a pyspark, y coordina migraciones y procesos de

clustering.

Conclusión

Apache Spark puede ser configurado para recrear varias aproximaciones al

concepto de algoritmo genético distribuido, como lo son el modelo maestro-esclavo o el de

islas, pero no está optimizado para este tipo de operaciones que requieren escrituras muy

frecuentes. Este problema es especialmente acuciante en el caso del modelo maestro-

esclavo, donde el sobre coste de tiempo escalaba siempre a la par que lo hacía el volumen

de datos. También hemos observado que la capa de abstracción que ofrece Spark puede

actuar en detrimento del algoritmo, ya que necesitaríamos cierto grado de control sobre la

carga de trabajo de los nodos, especialmente cuando el sistema es síncrono y las colonias

cambian de tamaño.
Cuadro comparativo entre Spark y Hadoop Mapreduce

DIFERENCIAS ENTRE SPARK Y HADOOP


SPARK HADOOP
Usabilidad
- Viene equipado con APIs realmente - Si bien es verdad que MapReduce
sencillas para Scala, Python, Java y tiene complementos como Pig y Hive
Spark SQL. que lo hacen algo más fácil de usar, al
final lo que sucede es que la lógica
simple necesita más programación
GANADOR: En este caso Apache Spark superaría a Hadoop
Rendimiento
En lo que respecta a Spark: En el caso de Hadoop:

- Trabaja in memory y, por lo tanto, - Los datos están en disco y eso hace
todos los procesos se aceleran. que todo resulte más lento.
- Pero necesita más memoria para el - La ventaja es que, en comparación con
almacenamiento. la otra alternativa, las necesidades de
- Su rendimiento puede verse mermado almacenamiento son inferiores.
debido a la necesidad de utilizar - Al ocuparse de eliminar los datos
aplicaciones pesadas. cuando no son ya necesarios, no
produce pérdidas de rendimiento
significativas para aplicaciones
pesadas.
GANADOR: Dado que ambas procesan los datos de forma diferente no hay forma de
determinar cuál es más eficiente
Seguridad
- Spark necesita ejecutarse en HDFS - Proporciona a sus usuarios todos los
para acceder a permisos de nivel de beneficios de los avances obtenidos en
archivo y, además, para obtener los proyectos de seguridad de Hadoop
beneficios de seguridad ha de recurrir a (Knox Gateway o Sentry son algunos
Hadoop YARN. ejemplos).
- HDFS admite la autorización de nivel
de servicio, que garantiza los permisos
adecuados para los clientes a nivel de
archivo
- Y, además.... tiene Hadoop YARN
GANADOR: En este caso Hadoop tiene muchas más funcionalidades que Spark

CONCLUSION
Cada uno domina al otro en distintas áreas. Por ejemplo, Hadoop sería la elección
acertada cuando el tamaño de la memoria es significativamente menor que el tamaño de los
datos; pero, si se busca rapidez, no cabría plantearse otra opción que Spark.
¿Qué es Apache Spark?
En sus propias palabras, Apache Spark es "un motor de análisis unificado para el
procesamiento de datos a gran escala". Spark es mantenido por la Apache Software
Foundation, una organización sin fines de lucro, que ha lanzado cientos de proyectos de
software de código abierto. Más de 1200 desarrolladores han contribuido a Spark desde el
inicio del proyecto.  
¿Qué es Hadoop MapReduce?
MapReduce de Hadoop se describe a sí mismo como "un marco de software para escribir
fácilmente aplicaciones que procesan grandes cantidades de datos (conjuntos de datos de
varios terabytes) en paralelo en grandes grupos (miles de nodos) de hardware básico de
una manera confiable y tolerante a fallas".
RENDIMIENTO
 Spark funciona mejor cuando todos los datos caben en la memoria, especialmente
en clústeres dedicados.
 Hadoop MapReduce está diseñado para datos que no caben en la memoria y
pueden funcionar bien junto con otros servicios.
FACILIDAD DE USO
 Spark es más fácil de programar e incluye un modo interactivo.
 Hadoop MapReduce es más difícil de programar, pero hay varias herramientas
disponibles para hacerlo más fácil.

Spark es más rentable según los puntos de referencia, aunque la dotación de personal
podría ser más costosa. 
Hadoop MapReduce podría ser más económico porque hay más personal disponible y
probablemente sea menos costoso para volúmenes de datos masivos.
COMPATIBILIDAD

 La compatibilidad de Spark con varios tipos de datos y fuentes de datos es la


misma que la de Hadoop MapReduce.
PROCESAMIENTO DE DATOS
 Spark es la navaja suiza del procesamiento de datos.
 Hadoop MapReduce es el comando del procesamiento por lotes.
TOLERANCIA A FALLAS
 Spark y Hadoop MapReduce tienen una buena tolerancia a fallas, pero Hadoop
MapReduce es un poco más tolerante.
SEGURIDAD
 Spark está aún menos desarrollada.
 MapReduce, que tiene más funciones y proyectos de seguridad.

Conclusión:

 Apache Spark es potencialmente 100 veces más rápido que Hadoop MapReduce.
 Apache Spark utiliza RAM y no está vinculado al paradigma de dos etapas de
Hadoop.
 Apache Spark funciona bien para conjuntos de datos más pequeños que pueden
caber en la RAM de un servidor.
 Hadoop es más rentable al procesar conjuntos de datos masivos.
 Apache Spark ahora es más popular que Hadoop MapReduce.
Referencia: https://www.xplenty.com/blog/apache-spark-vs-hadoop-mapreduce/

También podría gustarte