Programación Disribuida

12
Modelos de Programación Distribuida Jonathan Narvaez

description

Breve descripción de programación distribuida en las que se incluye, Spark, MapReduce, Storm, BSP. Brief description of the distributed programming included, Spark, MapReduce, Storm, BSP.

Transcript of Programación Disribuida

Page 1: Programación Disribuida

Modelos de Programación DistribuidaJonathan Narvaez

Page 2: Programación Disribuida

Modelo de programación Data-Parallel, diseñado para escalabilidad y tolerancia a fallos

● Uso de operaciones Map y Reduce

Diseño original por Google (2004)

● Usado para la ejecución de múltiples operaciones● Manejo de Petabytes diarios.

MapReduce

Page 3: Programación Disribuida

Escalabilidad con grandes volúmenes de datos.

● Uso de equipos de bajo costo● Uso de redes de bajo costo● Facilidad en la programación● Tolerancia a fallos

MapReduce Características

Page 4: Programación Disribuida

Sistema de Archivos Distribuidos

De GFS (Google File System) a HDFS (Hadoop File System)

Arquitectura Master WorkerMap Workers

Minimizar el uso de la red.Uso del disco local para la grabación de los archivos de salida.Tolerancia a Fallos

Reduce WorkersReplicación de resultados.Múltiples ficheros Reduce

MapReduce Características

Page 5: Programación Disribuida

MapReduce Características

Imagen tomada de: https://www.flickr.com/photos/nourlcn/5699664914/

Page 6: Programación Disribuida

MapReduce + HDFS

Imagen tomada de: http://hadoop.apache.org/docs/r1.2.1/hdfs_design.html

Page 7: Programación Disribuida

1. Biomedical Case Studies in Data Intensive Computing

2. Cloud-scale RNA-sequencing differential expression analysis with Myrna

3. Cloud computing for comparative genomics

4. BlastReduce: High Performance Short Read Mapping with MapReduce

5. Biodoop: Bioinformatics on Hadoop

6. CloudBurst: highly sensitive read mapping with MapReduce

7. Kepler + Hadoop : A General Architecture Facilitating Data-Intensive Applications in Scientific Workflow Systems

8. MapReduce-Based Pattern Finding Algorithm Applied in Motif Detection for Prescription Compatibility Network

MapReduce en la Bioinformática

Page 8: Programación Disribuida

● El modelo MapReduce reduce la dificultad de la distribución de trabajos y la tolerancia a fallos.

● Diseño escalable y reducción de costos asociados.

● No es adecuado a todos los problemas.

● Restricción a un solo modelos de herramientas de programación.

Conclusiones

Page 9: Programación Disribuida

Apache Hadoop YARN (Yet Another Resource Negotiator)

MapReduce V2

Adición de Elementos● JobTracker● ResourceManager● ApplicationMaster

Hadoop YARN

Imagen tomada de: http://hadoop.apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/YARN.html

Page 10: Programación Disribuida

● Modelo Resilient Distributed Data Sets.● Modelo de distribuido de memoria para computación, aplicado con apache

Mesos.● Escrito en Scala.● En memoria 100x.● En disco 10x.

https://spark.apache.org/

Spark

Page 11: Programación Disribuida

● Sistema de computación distribuida en tiempo real● Gestión de altos flujos de información● Diseñado con la topología Directed Acyclic Graph● Procesamiento de información similares a MapReduce, con la diferencia

que se realiza en tiempo real.● https://storm.incubator.apache.org/

Storm

Imagen tomada de: https://storm.incubator.apache.org/

Page 12: Programación Disribuida

Bulk Synchronous Parallel

● Procesamiento en memoria local● Sistema de mensajes entre pares● Facilidad en la sincronización de todos los componentes

● Modelo de computación Concurrente● Intercambio de Mensajes que facilitan el acceso remoto a datos● Algoritmo para la sincronización de procesos.

https://hama.apache.org/index.html

BSP