Be water with
Apache Spark™ in the Real World
¡Hola!
• Sergio Gómez
• Software Architect at
• @pulsarin
• linkedin.com/in/bedeveloper
Contenido
• Un proyecto Big Data
• Lecciones aprendidas
• Búsqueda de rendimiento
¿De qué va esto?
¿De qué va esto?
Un proyecto
Un proyecto
• Telco internacional
• Información de la sondas
• 10 millones de usuarios registrados
Volumen
• ~10K millones de eventos diarios
• 17 nodos, 360 cores, 2’4 TB ram
• Ejecuciones diarias
Volumen
Objetivos
• Monetización
• Calidad de las infraestructuras
• Detección de potenciales problemas
Lecciones aprendidas
Diseña
• Piensa en los datos
• Piensa en el flujo
• Piensa en tu storage
Caso 1: ETL
• Descarga diaria de las sondas
• Procesado y enriquecido con los usuarios
• Guardado para futuros procesos
• Métricas de sanidad
Caso 1: ETL
• Gran volumen de datos
• Errores de parseo
• Reprocesing
Caso 1: ETL
CPU
RAMRED
Caso II: K-Means
• Muchas iteraciones
• Ensayo - error
• Datos precocinados
Los errores
Los errores
No falles
• Tu aplicación no puede fallar
• Un error puede suponer horas…
• … o incluso perder información
Datos reales
• Usa samples reales
• Reduce la magnitud para extrapolar
“Qué sea barato fallar”
Volumen real
• Usa el volumen real
• Necesitas ser escalable
Evitaremos
• PermGen
• OOM
• Tiempos de proceso demasiado altos
• No escalamos
• Uso asimétrico del cluster
“Falla rápido”
Buscando rendimiento
Cachea
• Cachea cuando sea posible
• Usa broadcast
• Coalesce
Gestiona el cluster
• Mesos / YARN
• Prueba diferentes configuraciones
• JVM tuning
Suffle
• Piensa en la distribución de keys
• Partitioner
• ¿Qué voy a hacer con los datos?
• groupByKey
SparkSQL
• Select * from… ¿seriously?
• Bueno si tenemos datos parcialmente estructurados
• Trabajar con un subset
¿Dudas?
Linkazos :)
• http://es.slideshare.net/pulsarin/be-watter-with-spark
• http://kcy.me/29czy
• Insultos aquí: http://kcy.me/29d01
¡Gracias!@pulsarin
Top Related