4. 4
• Creado por Google (2004)
– Modelo de programación paralela
– Concepto simple, inteligente, útil para múltiples aplicaciones
– Big datasets multi-node en multiprocessors
– Conjuntos de nodos: Clusters o Grids (programación distribuida)
– Capaz de procesar 20 PB en un día
– Es una variante del método Divide y Vencerás en Tecnología de la
Programación.
– No todos los problemas se pueden resolver con MapReduce, como
tampoco todos los problemas se pueden resolver con Divide y
Vencerás
23. 23
API conjunto de funciones de uso general para facilitar la
comunicación
24. 24
Apache Pig is a platform for
analyzing large data sets that
consists of a high-level language
for expressing data analysis
programs.
25. 25
The Apache Hive ™ data warehouse
software facilitates querying and
managing large datasets residing in
distributed storage. Hive provides a
mechanism to project structure onto
this data and query the data using a
SQL-like language called HiveQL.
26. 26
Apache HBase™ is
the Hadoop database, a
distributed, scalable, big data
store.
Los mensajes de
Facebook se
almacenan en
Hbase
28. Proyectos con Hadoop
Funcionamiento de Hadoop
https://www.youtube.com/watch?v=QOpxU9ni4b
g#t=2203
Funcionamiento de HDFS
www.formhadoop.es/img/HDFS-comic.pdf
Funcionamiento de Hive
http://www.franciscojavierpulido.com/2013/11/h
ive-consultas-tipo-sql-sobre-hadoop.html
29. Proyectos con Spark
Framework de procesamiento en paralelo semejante a Hadoop.
Se incubó en AmpLabs como parte de la tesis doctoral de Matei
Zaharia, 2009 Berkeley (2014 en MIT).
Hoy en día es un ‘top level project’ de la Apache Software
Fundation.
Databricks es la startup que surge de AmpLabs donde se sigue
desarrollando Spark en explotación: da soporte y ofrece una pila
de desarrollo para ejecución de Spark por parte de las empresas.
30. Proyectos con Spark
Palabras Clave de Spark
HDFS Se aligera mediante el uso de almacenamiento en memoria (In-
Memory) con archivos RDD.
Archivos RDDs Permiten consultas tipo SQL en tiempos de ejecución
muchísimo más rápidos. Este tipo de archivos fue presentado por Matei Zaharia
y varios colegas de Berkeley (Resilient Distributed Datasets: A Fault-Tolerant
Abstraction for In-Memory Cluster Computing, M. Zaharia et al.)
Se mantiene la convivencia de los sistemas y formatos de archivos y datos.
Map Reduce Módulo de ejecución con programación Funcional sobre los
RDDs
31. Proyectos con Spark
Palabras Clave de Spark
Map Reduce Módulo de ejecución con programación Funcional sobre los RDDs
RDD contiene las trnasformaciones que se van a realizar sobre los datos.
Datos inmutables
Paradigma de programación Funcional Recusiva vs. Imperativa
Evaluación perezosa característica de la programación funcional que permite
ejecuciones rápidas In-Memory
Lambda-cálculo los parámetros pueden ser funciones, esto permite programar
Map-Reduce de forma muy ágil
32. Proyectos con Spark
Ventajas de Spark
Mayor flexibilidad en la definición de transformaciones (nivel de programación)
Menor uso de almacenamiento en disco
Cálculos intermedios siempre a memoria y no a disco.
Aprovechamiento de la memoria
Tolerancia a fallos.
Además permite simulaciones sobre nodos virtuales de forma local
Tracción de la comunidad: mucha gente y organizaciones están trabajando en
mejorar y en popularizar Spark
33. Proyectos con Spark
Probablemente el Map Reduce de google esté basado en programación funcional
file = spark.textFile("hdfs://...")
file.flatMap(lambda line: line.split())
.map(lambda word: (word, 1))
.reduceByKey(lambda a, b: a+b)
Word count in Spark's Python API
34. Proyectos con Spark
Funcionamiento de Spark con Stratio explicado por Daniel Higuero en el segundo
Spark Meetup de Madrid:
https://www.youtube.com/watch?v=0Ai9VuBGbpw&feature=youtu.be