Be watter with Spark

Preview:

Citation preview

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

Recommended