SlideShare una empresa de Scribd logo
1 de 59
Errores que todos
cometemos en
proyectos Big Data
Julio 2016
Meetup
Presentación
Presentación
JORGE LÓPEZ-MALLA
Tras trabajar con algunas
metodologías tradicionales
empecé a centrarme en el
mundo del Big Data, del cual
me enamoré. Ahora soy
arquitecto Big Data en Stratio y
he puesto proyectos en
producción en distintas partes
del mundo.
Jorge López-Malla Matute
DICE
jlopezm@stratio.com
Stratio
1
2
3
Empecemos por el principio: conceptos
Errores en Proyectos en Batch (Con Spark)
Errores en Proyectos en Streaming (Con Spark)
4 Ruegos, preguntas e historias de abuelo cebolletas
Empecemos por el
principio: conceptos
1
Conceptos
• ¿Qué es el Big Data?
• ¿Todas las BBDD NoSQL son BBDD Big Data?
• ¿Qué quiere decir que un problema es horizontalmente escalable y que
quiere decir que es verticalmente escalable?
Empezamos por el principio: Conceptos
• ¿Qué es Hadoop?
Prerrequisitos
• La diversidad y cantidad de fuentes requiere un estudio exhaustivo previo.
• Los datos casi nunca están tan “limpios” como nos dicen o creemos
• Un fallo en una fuente no puede parar el proceso
Empezamos por el principio: Conceptos
Tecnologías
• Debido al boom del Big Data han salido infinidad de nuevas tecnologías
• Dado que los proyectos Big Data suelen ser proyectos de innovación se
busca usar la última versión de la última tecnología
• Aunque tenemos distintas opciones para el almacenamiento distribuido de
la información tendemos a querer usar una sóla solución para todo.
Empezamos por el principio: Conceptos
Repositorios Distribuidos
• Nombramos como BBDD repositorios distribuidos de datos que no lo son (Elastic
Search, HDFS, ….)
• Hay que tener en cuenta la variedad de claves en las BBDD de Clave Valor
Empezamos por el principio: Conceptos
HDFS + Parquet
• Una de las soluciones más usadas por su versatilidad y eficiencia.
• Parquet NO convierte a HDFS en una BBDD.
• Aunque Parquet tenga un formato columnar sigue siendo un formato de
ficheros.
Empezamos por el principio: Conceptos
• Errores típicos:
Escribir directamente a HDFS con formato Parquet:
Las principales herramientas de ETL no distribuidas de Big Data no ofrecen
esta posibilidad.
Para salvar la información con formato Parquet hay que usar un esquema
compatible con la herramienta que lo procese más tarde
Tendríamos que hacer un proceso que leyera de HDFS para luego ingestar
en Parquet.
HDFS + Parquet
Empezamos por el principio: Conceptos
• Errores típicos:
Intentar Actualizar/Borrar en Parquet
HDFS + Parquet
Empezamos por el principio: Conceptos
file1.parquet file1.parquetProceso
Spark
/folder/parquet /tmp/parquet
mv de
HDFSBorrado de
HDFS
file1.parquet
Borrado de
HDFS
• Errores típicos:
¿Tienes realmente un problema de Streaming?
Streaming
Empezamos por el principio: Conceptos
¿De verdad?
¿Tienes la tecnología de ingesta de datos necesaria para ingestar tus
datos en Tiempo Real?
• Errores típicos:
¿El cliente tiene claro que el proceso de Machine Learning requerirá de su o de la
intervención de un tercero?
Machine Learning
Empezamos por el principio: Conceptos
Debido a la inmadurez de algunos algoritmos de Machine Learning usados en
entornos Big Data nos tenemos que cercioranos de su performance.
Errores en proyectos
Batch usando Spark
2
Introducción
Errores en proyectos Batch usando Spark
• Aunque se hable de Batch para diferenciar las distintas “patas” de Spark, se hace
referencia al core
• Cualquier cambio para mejorar que se haga con estas instrucciones vale para las
demás “patas”.
• Se hace referencia principalmente a HDFS pero es extensible a cualquier
repositorio de información distribuido (teniendo en cuenta las particularidades de
cada uno).
• Se explica todo para Spark 1.6.2 dado que Spark 2.0 acaba de salir.
Excepciones
Errores en proyectos Batch usando Spark
• Errores típicos:
Mi trabajo de Spark ha fallado por una excepción y la traza de la aplicación no me
dice nada útil.
Si el fallo se ubica en actor distribuido (Executor) puede que la traza no sea lo
suficientemente verbosa en el Application.
• Actores involucrados en Spark
Excepciones
Errores en proyectos Batch usando Spark
Driver
Worker-1
Worker-2
Worker-3
SparkMaster Executor-2
Executor-1
Executor-3
Excepciones
Errores en proyectos Batch usando Spark
• Ayudas
Revisar log de las distintas máquinas virtuales involucradas en un job de Spark
La localización de estos log se define por configuración.
La Spark web es tu amiga ¡úsala!
Excepciones
Errores en proyectos Batch usando Spark
Excepciones
Errores en proyectos Batch usando Spark
Última partición infinita
Errores en proyectos Batch usando Spark
• Errores típicos:
Mi trabajo de Spark se queda trabado en la última partición.
Casi con total seguridad NO es la última partición.
Normalmente está asociado a una mala distribución de las claves.
• Una partición mucho más grande
Última partición infinita
Errores en proyectos Batch usando Spark
Driver
Executor-1
Executor-2
Executor-3
RDD1 = 10.7G
= 100 Mb
= 10 Gb
Paralelismo
Errores en proyectos Batch usando Spark
• Ayudas:
No suele haber solución “fácil”
La web de Spark nos puede dar la pista (sobre todo a partir de qué nos pitan el
DAG 1.4)
Coalesce/reparttion son nuestros amigos
¡Cuidado con el Shuffle!
Paralelismo
Errores en proyectos Batch usando Spark
• repartition/coalesce:
= 100 Mb
= 10 Gb
coalesce
= 1,52 Gb
Paralelismo
Errores en proyectos Batch usando Spark
• Ayudas:
Paralelismo
Errores en proyectos Batch usando Spark
• Errores típicos:
Al aumentar mi input el tiempo de procesamiento de mi trabajo crece de
manera no orgánica con el crecimiento de mis datos.
Es uno de los problemas más típicos cuando ingestamos nuestros datos de
manera secuencial, diaria/mensual, dentro de un mismo repositorio de
datos, sobre todo HDFS.
Primero revisar memory leaks dentro de nuestras fases.
Puede ser un problema de paralelismo
Paralelismo
• Como paraleliza Spark el trabajo.
HDFS
/user/folder2
/user/folder2
1G
1M 1M 1M
1G
Job1
Job2
Errores en proyectos Batch usando Spark
1G1G
1M1M 1M
Spark
Paralelismo
• Como paraleliza Spark el trabajo.
HDFS
/user/folder2
/user/folder2
1G
1M 1M 1M
1G
Job1
Job2
Errores en proyectos Batch usando Spark
1G1G
1M1M 1M
SparkIngesta
1M 1M 1M
1M 1M 1M 1M 1M 1M
1M1M 1M
1M1M 1M 1M1M 1M
Paralelismo
Errores en proyectos Batch usando Spark
• Soluciones:
Determinar de antemano las unidades mínimas de computación.
Hacer un proceso de “actualización” de los datos
Hay que tener en cuenta los problemas de Actualización de HDFS
Si estamos hablando de HDFS y ficheros en “crudo” llamar periódicamente al
método getMerge.
Paralelismo
Errores en proyectos Batch usando Spark
• Errores típicos:
Al aumentar el tamaño de memoria de mis procesos no estoy notando mejora o
al aumentar el número de cores para realizar mis trabajos no estoy
encontrando mejora ninguna
Normalmente quiere decir que no has encontrado tu paralelismo ideal para
tu trabajo.
Paralelismo
• Pocos cores y mucha memoria
Errores en proyectos Batch usando Spark
Driver
Executor-1
Executor-2
Executor-3
RDD1 = 5g
= 512 Mb
= 1Gb
2 cores
6 Gb
2 cores
6 Gb
2 cores
6 Gb
Paralelismo
• Sólo aumentamos memoria :(
Errores en proyectos Batch usando Spark
Driver
Executor-1
Executor-2
Executor-3
RDD1 = 5g
= 512 Mb
= 1Gb
2 cores
8 Gb
2 cores
8 Gb
2 cores
8 Gb
• ¡Solución!
Paralelismo
Errores en proyectos Batch usando Spark
Driver
Executor-1
Executor-2
Executor-3
RDD1 = 5g
= 512 Mb
= 1Gb
3 cores
3 Gb
3 cores
3 Gb
3 cores
3 Gb
• Muchos cores y poca memoria
Paralelismo
Errores en proyectos Batch usando Spark
Driver
Executor-1
Executor-2
Executor-3
RDD1 = 5g
= 512 Mb
= 1Gb
3 cores
1 Gb
3 cores
1 Gb
3 cores
1 Gb
• Sólo aumentamos cores :(
Paralelismo
Errores en proyectos Batch usando Spark
Driver
Executor-1
Executor-2
Executor-3
RDD1 = 5g
= 512 Mb
= 1Gb
4 cores
1 Gb
4 cores
1 Gb
4 cores
1 Gb
• ¡Solución!
Paralelismo
Errores en proyectos Batch usando Spark
Driver
Executor-1
Executor-2
Executor-3
RDD1 = 5g
= 512 Mb
= 1Gb
3 cores
3 Gb
3 cores
3 Gb
3 cores
3 Gb
Paralelismo
Errores en proyectos Batch usando Spark
• Ayudas:
No suele ser fácil/automatico encontrar la combinación ideal
Son necesarias varias ejecuciones y jugar con valores máximos para evitar OOM.
Por norma prima el paralelismo (cores) a la memoria (Gigas), siempre que se haga
una solución escalable.
Más sencillo lanzando el trabajo sobre Mesos/YARN
Mezcla de datos
Errores en proyectos Batch usando Spark
• Errores típicos:
Al hacer una fase de combinación, mi trabajo se traba.
Suele ocurrir cuando hacemos operaciones que no son eficientes,
groupByKey, al hacer la agregación
Error bastante común para los que vienen del “mundo Hadoop”
Revisar la distribución de las claves.
Mezcla de datos
Errores en proyectos Batch usando Spark
Odon, F
Infor, H
Odon, F
Infor, F
Odon, H
Odon, F
Infor, H
Odon, F
Infor, H
Infor, H
Infor, H
Odon (F, F, H, F, F)
Infor (H, F, H, H, H, H)
Odon 80,00
Infor 16,66
GroupByKey
Mezcla de datos
Errores en proyectos Batch usando Spark
• GroupByKey:
Contras
Todos los valores de una misma clave se copian a la misma partición
pudiendo dar problemas de memoria
Se multiplica la escritura en disco. (Sí, Spark escribe en disco)
Pros:
Nos permite hacer todo tipo de operaciones (alguna vez es inevitable usar el
groupByKey)
Mezcla de datos
Errores en proyectos Batch usando Spark
• GroupByKey:
Mezcla de datos
Errores en proyectos Batch usando Spark
Odon, F
Infor, H
Odon, F
Infor, F
Odon, H
Odon, F
Infor, H
Odon, F
Infor, H
Infor, H
Infor, H
Odon (66.66, 3)
Infor (50.0, 2)
aggregateByKey
Odon (100.0, 2)
Infor (0.0, 1)
Infor (0.0 , 2)
Infor (0.0 , 2)
Odon (80.0, 5)
Infor (16.66, 6)
Mezcla de datos
Errores en proyectos Batch usando Spark
• aggregateByKey:
Contras
No permite hacer todo tipo de operaciones (Sólo aquellas conmutativas y
asociativas)
Pros:
Sólo se escribe a disco un valor por clave y partición.
Minimiza al máximo las escrituras a disco (más aún con el proyecto Tugnsten)
Mezcla de datos
Errores en proyectos Batch usando Spark
• AggregateByKey:
Mezcla de datos
Errores en proyectos Batch usando Spark
• Ayudas:
Evitar el Shuffle sobre todas las cosas.
Usar la Spark Web cuando se hagan procesos para ver el gráfico del DAG.
Siempre hacer join del RDD más “pequeño”
Mezcla de datos
Errores en proyectos Batch usando Spark
• Errores típicos:
Al juntar dos RDD mi trabajo se traba.
join es una de las operación más comunes dentro de Spark
Si al hacerlo tenemos problemas de performance tendremos que revisar los
partitioner de los RDD involucrados
las variables de broadcast son nuestras amigas, ¡úsalas!
Mezcla de datos
Errores en proyectos Batch usando Spark
RDD1 = 15g
RDD1 = 1M
Mezcla de datos
Errores en proyectos Batch usando Spark
Mezcla de datos
Errores en proyectos Batch usando Spark
Mezcla de datos
Errores en proyectos Batch usando Spark
Errores en proyectos
Streaming usando
Spark
3
Introducción
Errores en proyectos Streaming usando Spark
• El tiempo real empieza a ser una realidad en nuestras casuísticas de Big Data
• Auge de nuevas tecnologías de procesamiento en paralelo con naturaleza
Streaming
• Aunque hay mejoría en Spark 2.0, y más en futuras versiones de la misma, esta
charla se explicará usando Spark 1.6.2 dado que Spark 2.0 acaba de salir
Delay excesivo
Errores en proyectos Streaming usando Spark
• Errores típicos:
Mi trabajo de Spark en Streaming va aumentando el retardo en tiempo hasta que
llega a minutos(u horas o dias).
Suele pasar en soluciones en las que se ha diseñado sin pensar en cómo
procesa Spark en Streaming.
Pasa en escenarios en los que los datos no crecen de manera orgánica
• ¿Cómo funciona Spark Streaming?(a alto nivel)
Delay excesivo
Errores en proyectos Streaming usando Spark
Batch
interval
Reciver
RDD1 RDD2 RDD3 RDD4
RDD1 RDD2 RDD3
RDD5
RDD4
RDD6
RDD5
RDD7
RDD6
Delay excesivo
Errores en proyectos Streaming usando Spark
• Ayudas
Cuando se diseñe la solución hay que tener en cuenta los picos, tanto alto como
bajos de nuestro proceso Streaming.
Estimar recursos siendo pesimistas nos suele ayudar, aunque
sobredimensionemos nuestro aplicativo
Una vez más, la spark Web es nuestra amiga, ¡úsala!
Ruegos, preguntas e
historias de abuelo
cebolletas
4
Preguntas
Ruegos, preguntas e historias de abuelo cebolletas
¡Esto es todo amigos!
MUCHAS GRACIAS Y ANIMAROS A COMPARTIR CONOCIMIENTO
Meetup errores en proyectos Big Data

Más contenido relacionado

Similar a Meetup errores en proyectos Big Data

Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOnacho mascort
 
Cloud para tu juego en una tarde
Cloud para tu juego en una tardeCloud para tu juego en una tarde
Cloud para tu juego en una tardeIgnacio Segura
 
Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxjgs07
 
Meetup Junio Apache Spark Fundamentals
Meetup Junio Apache Spark FundamentalsMeetup Junio Apache Spark Fundamentals
Meetup Junio Apache Spark FundamentalsDataLab Community
 
Presentación de Paradis
Presentación de ParadisPresentación de Paradis
Presentación de ParadisC-cube ITESMCQ
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 
El poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilEl poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilDaniel Garcia (a.k.a cr0hn)
 
Big Data - El Futuro a través de los Datos
Big Data - El Futuro a través de los DatosBig Data - El Futuro a través de los Datos
Big Data - El Futuro a través de los DatosOscar Corcho
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 
Big data para desarrolladores utilizando hadoop y openstack
Big data para desarrolladores utilizando hadoop y openstack Big data para desarrolladores utilizando hadoop y openstack
Big data para desarrolladores utilizando hadoop y openstack Guillermo Alvarado Mejía
 
Big Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStackBig Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStackSoftware Guru
 
Lado oscuro de big data y el ingeniero del siglo xxi
Lado oscuro de big data y el ingeniero del siglo xxiLado oscuro de big data y el ingeniero del siglo xxi
Lado oscuro de big data y el ingeniero del siglo xxiJosé Carlos García Serrano
 
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Socialmetrix
 
DevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas RotasDevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas RotasRicard Clau
 
Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0Fredy Guibert
 

Similar a Meetup errores en proyectos Big Data (20)

Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEO
 
Taller hadoop
Taller hadoopTaller hadoop
Taller hadoop
 
Cloud para tu juego en una tarde
Cloud para tu juego en una tardeCloud para tu juego en una tarde
Cloud para tu juego en una tarde
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptx
 
Meetup Junio Apache Spark Fundamentals
Meetup Junio Apache Spark FundamentalsMeetup Junio Apache Spark Fundamentals
Meetup Junio Apache Spark Fundamentals
 
Presentación de Paradis
Presentación de ParadisPresentación de Paradis
Presentación de Paradis
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Hadoop en accion
Hadoop en accionHadoop en accion
Hadoop en accion
 
El poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilEl poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácil
 
Big Data - El Futuro a través de los Datos
Big Data - El Futuro a través de los DatosBig Data - El Futuro a través de los Datos
Big Data - El Futuro a través de los Datos
 
Frontend Developer
Frontend DeveloperFrontend Developer
Frontend Developer
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Hadoop en accion
Hadoop en accionHadoop en accion
Hadoop en accion
 
Big data para desarrolladores utilizando hadoop y openstack
Big data para desarrolladores utilizando hadoop y openstack Big data para desarrolladores utilizando hadoop y openstack
Big data para desarrolladores utilizando hadoop y openstack
 
Big Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStackBig Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStack
 
Lado oscuro de big data y el ingeniero del siglo xxi
Lado oscuro de big data y el ingeniero del siglo xxiLado oscuro de big data y el ingeniero del siglo xxi
Lado oscuro de big data y el ingeniero del siglo xxi
 
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
 
DevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas RotasDevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas Rotas
 
Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0
 

Más de Jorge Lopez-Malla

Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018
Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018
Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018Jorge Lopez-Malla
 
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018Jorge Lopez-Malla
 
Haz que tus datos sean sexys
Haz que tus datos sean sexysHaz que tus datos sean sexys
Haz que tus datos sean sexysJorge Lopez-Malla
 
Kerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit eastKerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit eastJorge Lopez-Malla
 
Apache Big Data Europa- How to make money with your own data
Apache Big Data Europa- How to make money with your own dataApache Big Data Europa- How to make money with your own data
Apache Big Data Europa- How to make money with your own dataJorge Lopez-Malla
 

Más de Jorge Lopez-Malla (8)

Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018
Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018
Geoposicionamiento Big Data o It's bigger on the inside Codemetion Madrid 2018
 
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018
Geoposicionamiento Big Data o It's bigger on the inside Commit conf 2018
 
Haz que tus datos sean sexys
Haz que tus datos sean sexysHaz que tus datos sean sexys
Haz que tus datos sean sexys
 
Mesos con europa 2017
Mesos con europa 2017Mesos con europa 2017
Mesos con europa 2017
 
Spark web meetup
Spark web meetupSpark web meetup
Spark web meetup
 
Kerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit eastKerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit east
 
Meetup spark + kerberos
Meetup spark + kerberosMeetup spark + kerberos
Meetup spark + kerberos
 
Apache Big Data Europa- How to make money with your own data
Apache Big Data Europa- How to make money with your own dataApache Big Data Europa- How to make money with your own data
Apache Big Data Europa- How to make money with your own data
 

Último

Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...SuannNeyraChongShing
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.ariannytrading
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaSantiagoSanchez353883
 

Último (20)

Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
Polimeros.LAS REACCIONES DE POLIMERIZACION QUE ES COMO EN QUIMICA LLAMAMOS A ...
 
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
SOLICITUD-PARA-LOS-EGRESADOS-UNEFA-2022.
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación pública
 

Meetup errores en proyectos Big Data

  • 1. Errores que todos cometemos en proyectos Big Data Julio 2016 Meetup
  • 2. Presentación Presentación JORGE LÓPEZ-MALLA Tras trabajar con algunas metodologías tradicionales empecé a centrarme en el mundo del Big Data, del cual me enamoré. Ahora soy arquitecto Big Data en Stratio y he puesto proyectos en producción en distintas partes del mundo.
  • 3. Jorge López-Malla Matute DICE jlopezm@stratio.com Stratio 1 2 3 Empecemos por el principio: conceptos Errores en Proyectos en Batch (Con Spark) Errores en Proyectos en Streaming (Con Spark) 4 Ruegos, preguntas e historias de abuelo cebolletas
  • 5. Conceptos • ¿Qué es el Big Data? • ¿Todas las BBDD NoSQL son BBDD Big Data? • ¿Qué quiere decir que un problema es horizontalmente escalable y que quiere decir que es verticalmente escalable? Empezamos por el principio: Conceptos • ¿Qué es Hadoop?
  • 6. Prerrequisitos • La diversidad y cantidad de fuentes requiere un estudio exhaustivo previo. • Los datos casi nunca están tan “limpios” como nos dicen o creemos • Un fallo en una fuente no puede parar el proceso Empezamos por el principio: Conceptos
  • 7. Tecnologías • Debido al boom del Big Data han salido infinidad de nuevas tecnologías • Dado que los proyectos Big Data suelen ser proyectos de innovación se busca usar la última versión de la última tecnología • Aunque tenemos distintas opciones para el almacenamiento distribuido de la información tendemos a querer usar una sóla solución para todo. Empezamos por el principio: Conceptos
  • 8. Repositorios Distribuidos • Nombramos como BBDD repositorios distribuidos de datos que no lo son (Elastic Search, HDFS, ….) • Hay que tener en cuenta la variedad de claves en las BBDD de Clave Valor Empezamos por el principio: Conceptos
  • 9. HDFS + Parquet • Una de las soluciones más usadas por su versatilidad y eficiencia. • Parquet NO convierte a HDFS en una BBDD. • Aunque Parquet tenga un formato columnar sigue siendo un formato de ficheros. Empezamos por el principio: Conceptos
  • 10. • Errores típicos: Escribir directamente a HDFS con formato Parquet: Las principales herramientas de ETL no distribuidas de Big Data no ofrecen esta posibilidad. Para salvar la información con formato Parquet hay que usar un esquema compatible con la herramienta que lo procese más tarde Tendríamos que hacer un proceso que leyera de HDFS para luego ingestar en Parquet. HDFS + Parquet Empezamos por el principio: Conceptos
  • 11. • Errores típicos: Intentar Actualizar/Borrar en Parquet HDFS + Parquet Empezamos por el principio: Conceptos file1.parquet file1.parquetProceso Spark /folder/parquet /tmp/parquet mv de HDFSBorrado de HDFS file1.parquet Borrado de HDFS
  • 12. • Errores típicos: ¿Tienes realmente un problema de Streaming? Streaming Empezamos por el principio: Conceptos ¿De verdad? ¿Tienes la tecnología de ingesta de datos necesaria para ingestar tus datos en Tiempo Real?
  • 13. • Errores típicos: ¿El cliente tiene claro que el proceso de Machine Learning requerirá de su o de la intervención de un tercero? Machine Learning Empezamos por el principio: Conceptos Debido a la inmadurez de algunos algoritmos de Machine Learning usados en entornos Big Data nos tenemos que cercioranos de su performance.
  • 14. Errores en proyectos Batch usando Spark 2
  • 15. Introducción Errores en proyectos Batch usando Spark • Aunque se hable de Batch para diferenciar las distintas “patas” de Spark, se hace referencia al core • Cualquier cambio para mejorar que se haga con estas instrucciones vale para las demás “patas”. • Se hace referencia principalmente a HDFS pero es extensible a cualquier repositorio de información distribuido (teniendo en cuenta las particularidades de cada uno). • Se explica todo para Spark 1.6.2 dado que Spark 2.0 acaba de salir.
  • 16. Excepciones Errores en proyectos Batch usando Spark • Errores típicos: Mi trabajo de Spark ha fallado por una excepción y la traza de la aplicación no me dice nada útil. Si el fallo se ubica en actor distribuido (Executor) puede que la traza no sea lo suficientemente verbosa en el Application.
  • 17. • Actores involucrados en Spark Excepciones Errores en proyectos Batch usando Spark Driver Worker-1 Worker-2 Worker-3 SparkMaster Executor-2 Executor-1 Executor-3
  • 18. Excepciones Errores en proyectos Batch usando Spark • Ayudas Revisar log de las distintas máquinas virtuales involucradas en un job de Spark La localización de estos log se define por configuración. La Spark web es tu amiga ¡úsala!
  • 19. Excepciones Errores en proyectos Batch usando Spark
  • 20. Excepciones Errores en proyectos Batch usando Spark
  • 21. Última partición infinita Errores en proyectos Batch usando Spark • Errores típicos: Mi trabajo de Spark se queda trabado en la última partición. Casi con total seguridad NO es la última partición. Normalmente está asociado a una mala distribución de las claves.
  • 22. • Una partición mucho más grande Última partición infinita Errores en proyectos Batch usando Spark Driver Executor-1 Executor-2 Executor-3 RDD1 = 10.7G = 100 Mb = 10 Gb
  • 23. Paralelismo Errores en proyectos Batch usando Spark • Ayudas: No suele haber solución “fácil” La web de Spark nos puede dar la pista (sobre todo a partir de qué nos pitan el DAG 1.4) Coalesce/reparttion son nuestros amigos ¡Cuidado con el Shuffle!
  • 24. Paralelismo Errores en proyectos Batch usando Spark • repartition/coalesce: = 100 Mb = 10 Gb coalesce = 1,52 Gb
  • 25. Paralelismo Errores en proyectos Batch usando Spark • Ayudas:
  • 26. Paralelismo Errores en proyectos Batch usando Spark • Errores típicos: Al aumentar mi input el tiempo de procesamiento de mi trabajo crece de manera no orgánica con el crecimiento de mis datos. Es uno de los problemas más típicos cuando ingestamos nuestros datos de manera secuencial, diaria/mensual, dentro de un mismo repositorio de datos, sobre todo HDFS. Primero revisar memory leaks dentro de nuestras fases. Puede ser un problema de paralelismo
  • 27. Paralelismo • Como paraleliza Spark el trabajo. HDFS /user/folder2 /user/folder2 1G 1M 1M 1M 1G Job1 Job2 Errores en proyectos Batch usando Spark 1G1G 1M1M 1M Spark
  • 28. Paralelismo • Como paraleliza Spark el trabajo. HDFS /user/folder2 /user/folder2 1G 1M 1M 1M 1G Job1 Job2 Errores en proyectos Batch usando Spark 1G1G 1M1M 1M SparkIngesta 1M 1M 1M 1M 1M 1M 1M 1M 1M 1M1M 1M 1M1M 1M 1M1M 1M
  • 29. Paralelismo Errores en proyectos Batch usando Spark • Soluciones: Determinar de antemano las unidades mínimas de computación. Hacer un proceso de “actualización” de los datos Hay que tener en cuenta los problemas de Actualización de HDFS Si estamos hablando de HDFS y ficheros en “crudo” llamar periódicamente al método getMerge.
  • 30. Paralelismo Errores en proyectos Batch usando Spark • Errores típicos: Al aumentar el tamaño de memoria de mis procesos no estoy notando mejora o al aumentar el número de cores para realizar mis trabajos no estoy encontrando mejora ninguna Normalmente quiere decir que no has encontrado tu paralelismo ideal para tu trabajo.
  • 31. Paralelismo • Pocos cores y mucha memoria Errores en proyectos Batch usando Spark Driver Executor-1 Executor-2 Executor-3 RDD1 = 5g = 512 Mb = 1Gb 2 cores 6 Gb 2 cores 6 Gb 2 cores 6 Gb
  • 32. Paralelismo • Sólo aumentamos memoria :( Errores en proyectos Batch usando Spark Driver Executor-1 Executor-2 Executor-3 RDD1 = 5g = 512 Mb = 1Gb 2 cores 8 Gb 2 cores 8 Gb 2 cores 8 Gb
  • 33. • ¡Solución! Paralelismo Errores en proyectos Batch usando Spark Driver Executor-1 Executor-2 Executor-3 RDD1 = 5g = 512 Mb = 1Gb 3 cores 3 Gb 3 cores 3 Gb 3 cores 3 Gb
  • 34. • Muchos cores y poca memoria Paralelismo Errores en proyectos Batch usando Spark Driver Executor-1 Executor-2 Executor-3 RDD1 = 5g = 512 Mb = 1Gb 3 cores 1 Gb 3 cores 1 Gb 3 cores 1 Gb
  • 35. • Sólo aumentamos cores :( Paralelismo Errores en proyectos Batch usando Spark Driver Executor-1 Executor-2 Executor-3 RDD1 = 5g = 512 Mb = 1Gb 4 cores 1 Gb 4 cores 1 Gb 4 cores 1 Gb
  • 36. • ¡Solución! Paralelismo Errores en proyectos Batch usando Spark Driver Executor-1 Executor-2 Executor-3 RDD1 = 5g = 512 Mb = 1Gb 3 cores 3 Gb 3 cores 3 Gb 3 cores 3 Gb
  • 37. Paralelismo Errores en proyectos Batch usando Spark • Ayudas: No suele ser fácil/automatico encontrar la combinación ideal Son necesarias varias ejecuciones y jugar con valores máximos para evitar OOM. Por norma prima el paralelismo (cores) a la memoria (Gigas), siempre que se haga una solución escalable. Más sencillo lanzando el trabajo sobre Mesos/YARN
  • 38. Mezcla de datos Errores en proyectos Batch usando Spark • Errores típicos: Al hacer una fase de combinación, mi trabajo se traba. Suele ocurrir cuando hacemos operaciones que no son eficientes, groupByKey, al hacer la agregación Error bastante común para los que vienen del “mundo Hadoop” Revisar la distribución de las claves.
  • 39. Mezcla de datos Errores en proyectos Batch usando Spark Odon, F Infor, H Odon, F Infor, F Odon, H Odon, F Infor, H Odon, F Infor, H Infor, H Infor, H Odon (F, F, H, F, F) Infor (H, F, H, H, H, H) Odon 80,00 Infor 16,66 GroupByKey
  • 40. Mezcla de datos Errores en proyectos Batch usando Spark • GroupByKey: Contras Todos los valores de una misma clave se copian a la misma partición pudiendo dar problemas de memoria Se multiplica la escritura en disco. (Sí, Spark escribe en disco) Pros: Nos permite hacer todo tipo de operaciones (alguna vez es inevitable usar el groupByKey)
  • 41. Mezcla de datos Errores en proyectos Batch usando Spark • GroupByKey:
  • 42. Mezcla de datos Errores en proyectos Batch usando Spark Odon, F Infor, H Odon, F Infor, F Odon, H Odon, F Infor, H Odon, F Infor, H Infor, H Infor, H Odon (66.66, 3) Infor (50.0, 2) aggregateByKey Odon (100.0, 2) Infor (0.0, 1) Infor (0.0 , 2) Infor (0.0 , 2) Odon (80.0, 5) Infor (16.66, 6)
  • 43. Mezcla de datos Errores en proyectos Batch usando Spark • aggregateByKey: Contras No permite hacer todo tipo de operaciones (Sólo aquellas conmutativas y asociativas) Pros: Sólo se escribe a disco un valor por clave y partición. Minimiza al máximo las escrituras a disco (más aún con el proyecto Tugnsten)
  • 44. Mezcla de datos Errores en proyectos Batch usando Spark • AggregateByKey:
  • 45. Mezcla de datos Errores en proyectos Batch usando Spark • Ayudas: Evitar el Shuffle sobre todas las cosas. Usar la Spark Web cuando se hagan procesos para ver el gráfico del DAG. Siempre hacer join del RDD más “pequeño”
  • 46. Mezcla de datos Errores en proyectos Batch usando Spark • Errores típicos: Al juntar dos RDD mi trabajo se traba. join es una de las operación más comunes dentro de Spark Si al hacerlo tenemos problemas de performance tendremos que revisar los partitioner de los RDD involucrados las variables de broadcast son nuestras amigas, ¡úsalas!
  • 47. Mezcla de datos Errores en proyectos Batch usando Spark RDD1 = 15g RDD1 = 1M
  • 48. Mezcla de datos Errores en proyectos Batch usando Spark
  • 49. Mezcla de datos Errores en proyectos Batch usando Spark
  • 50. Mezcla de datos Errores en proyectos Batch usando Spark
  • 52. Introducción Errores en proyectos Streaming usando Spark • El tiempo real empieza a ser una realidad en nuestras casuísticas de Big Data • Auge de nuevas tecnologías de procesamiento en paralelo con naturaleza Streaming • Aunque hay mejoría en Spark 2.0, y más en futuras versiones de la misma, esta charla se explicará usando Spark 1.6.2 dado que Spark 2.0 acaba de salir
  • 53. Delay excesivo Errores en proyectos Streaming usando Spark • Errores típicos: Mi trabajo de Spark en Streaming va aumentando el retardo en tiempo hasta que llega a minutos(u horas o dias). Suele pasar en soluciones en las que se ha diseñado sin pensar en cómo procesa Spark en Streaming. Pasa en escenarios en los que los datos no crecen de manera orgánica
  • 54. • ¿Cómo funciona Spark Streaming?(a alto nivel) Delay excesivo Errores en proyectos Streaming usando Spark Batch interval Reciver RDD1 RDD2 RDD3 RDD4 RDD1 RDD2 RDD3 RDD5 RDD4 RDD6 RDD5 RDD7 RDD6
  • 55. Delay excesivo Errores en proyectos Streaming usando Spark • Ayudas Cuando se diseñe la solución hay que tener en cuenta los picos, tanto alto como bajos de nuestro proceso Streaming. Estimar recursos siendo pesimistas nos suele ayudar, aunque sobredimensionemos nuestro aplicativo Una vez más, la spark Web es nuestra amiga, ¡úsala!
  • 56. Ruegos, preguntas e historias de abuelo cebolletas 4
  • 57. Preguntas Ruegos, preguntas e historias de abuelo cebolletas
  • 58. ¡Esto es todo amigos! MUCHAS GRACIAS Y ANIMAROS A COMPARTIR CONOCIMIENTO