El documento describe la arquitectura de Big Data de Socialmetrix, una compañía que monitorea actividad en redes sociales. Explica que usan una arquitectura Lambda escalable con Kafka, Spark y Cassandra para procesar grandes volúmenes de datos provenientes de redes sociales. También discute lecciones aprendidas como la importancia de automatizar procesos desde el inicio y dividir roles entre especialistas en crawling, procesamiento de lenguaje natural, Big Data y visualización.
1. Construyendo una infraestructura
de Big Data rentable y escalable
Gustavo Arjones
gustavo@socialmetrix.com
@arjones
Juan Pampliega
jpampliega@socialmetrix.com
@juanpampliega
2. Gustavo Arjones
Co-founder & CTO, Socialmetrix
Lic. Ciencias Computación
MBA Marketing Servicios
@arjones
gustavo@socialmetrix.com
Brasileño, en Argentina desde 2008
Juan Pampliega
Big Data Developer, Socialmetrix
Ing. Informática ITBA
@juanpampliega
jpampliega@socialmetrix.com
3. Agenda
• Sobre Socialmetrix
• Nuestra arquitectura
• Conceptos importantes
• Lecciones aprendidas
• Dónde aprender más
4. Socialmetrix
Medimos la actividad de las compañías
y personalidades en las redes sociales
para generar valor a profesionales de
Marketing, Investigación de Mercado y
Producto.
Software As A Service
5.
6. En números
• Capturando +5MM de fanpages de Facebook, cuentas de
Twitter, blogs, sites, etc
• Se generan +1.000 MM de interacciones en un mes
• Capturamos +1.000 Gb por mes de nuevos datos, los
antiguos no se borran
• 200+ servidores, + databases, +ambientes de
prueba/staging
8. Big Data – el nuevo, nuevo paradigma
Volumen + Velocidad + Variedad
Nuevas Tecnologías (Kafka + Spark + Cassandra)
Procesamiento de Datos
Distribuido y Escalable
9. Conceptos del nuevo paradigma
Un único repositorio de datos, append only.
query = function(all data)
Simple de razonar
Verdad en un momento dado
Siempre puede ser “re-computado”
Permite evolución
11. Arquitectura Lambda
• Crear un sistema tolerante a fallos tanto de hardware como
los humanos
• Permitir lecturas y escrituras de baja latencia
• Escalabilidad lineal horizontal
• Facilidad de re-procesos
• Permitir la investigación interactiva de los datos
12. Arquitectura Lambda (críticas)
Muchos esfuerzos duplicados (Realtime + Batch Processing)
• Duplicación de Lógica
• Duplicación de Know-how & Esfuerzo
• Asume que el procesamiento RT no es confiable
http://radar.oreilly.com/2014/07/questioning-the-lambda-architecture.html
15. Otros desafíos
• Información llega fuera de orden (no es time-ordered)
• Duplicados es una realidad
• Encoding de la fuente no siempre está bien configurado
• API rate-limit
19. Los errores
• Falta de foco, demasiadas tecnologías (hay mucho buzz)
• No empezar sin una investigación exhaustiva (alguien lo
hizo antes!)
• No cambiar/procesar los datos antes de guardar (guardar
raw data)
• No automatizar desde el principio
20. Los aciertos
• División/especialización de profesionales
• Crawling, Natural Language Processing, Big Data, API,
Visualización
• Aprendimos de Open Source (leer código, mejores
practicas)
• Automación de tareas operacionales(ie: Puppet,
CloudFormation)
• Crear un ambiente rico para experimentación
22. Recomendaciones
• Utilizar Amazon AWS hace que muchas ideas se puedan
probar inmediatamente – hay scripts y “AMI” pre-armadas
• Hacer pruebas con Spot Instances vs. Instancias más
grandes
• Automatizar los procesos desde el día 1 (Puppet,
CloudFormation)
• Virtualización, incluso en Dev: Vagrant, Docker, CoreOS
23. Recomendaciones
• Testing, testing, testing
• Usar datasets medianos en Dev y grandes en Staging
• Monitorear los procesos, aprender los patrones de los
datos
25. Mucha documentación disponible
Lamda Architecture
http://lambda-architecture.net/
Getting Started with Big Data Architecture
http://blog.cloudera.com/blog/2014/09/getting-started-with-big-data-architecture/
Your weekly Hadoop news fix
http://www.hadoopweekly.com/
The Hortonworks Blog
http://hortonworks.com/blog/
Applying the Lambda Architecture with Spark - Jim Scott
http://spark-summit.org/2014/talk/applying-the-lambda-architecture-with-spark
Cloudera Engineering Blog
http://blog.cloudera.com/blog/
Listado de herramientas de Big Data y papers relevantes
http://blog.andreamostosi.name/big-data/