Download - Programación Disribuida

Transcript
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