SlideShare una empresa de Scribd logo
APACHE STORM
Minando redes sociales y medios en tiempo real
ACERCA DE…
Ingeniero de sistemas con énfasis en
inteligencia de negocio.
Consultor líder de Big Data y analítica
para PwC - PricewaterhouseCoopers.
Co-fundador de Meridean, start-up para
investigación de mercados y análisis de
información no estructurada. (5 años).
Creador de PeopleVector, plataforma
para análisis de reputación corporativa en
tiempo real.
1. Apache Storm
2. Los indicadores mandan
3. Arquitectura cloud
4. Procesamiento de lenguaje natural
CONTENIDO
CONTEXTO
¿QUÉ TAN RÁPIDO ES “TIEMPO
REAL”?
Definición blanda:
“El sistema generalmente
no es tiempo real, pero si
debe ser bastante rápido
la mayoría del tiempo”
Real
time
segundos
ml s.
Near real-time
minutos - horas
Offline
horas - dias
ej: filtros
ej: correlaciones
ej: análisis
comportamiento
Batch
In motion
I. APACHE STORM
Es un framework para
computación en tiempo real
distribuida y tolerante a
fallas.
Originado en
BackType/Twitter, bajo
código abierto desde 2011.
Procesamiento individual a
medida que cada mensaje
llega (at-least-one)
CASOS DE USO
Twitter (220 nodos, 50B mensajes/día. 2013)
Detectar trending topics, personalización de ads,
búsquedas ad-hoc, optimización de ingresos.
Yahoo (320 nodos, 130k mensajes/s. 2013)
Eventos de usuarios, analizar feeds de contenidos y logs
de aplicaciones
Spotify (22 nodos, 200k mensajes/s. 2014)
Motor de recomendaciones, Generación de Ads y
monitoreo
Netflix, Alibaba, Cisco, WeatherChannel…
LENGUAJES
Hecho en: Clojure y algo de
Java
Para programar en: Java,
Python,Scala, Ruby, cualquier
otro.
FILOSOFÍA DE STORM
• Topologías: unen datos con funciones a
través de un DAG (grafo acíclico dirigido).
TOPOLOGÍA: SPOUT Y BOLTS
“1234 Tres
tristres tigres,
tragaban trigo
en un trigal, en
tres tristes
trasto, tragaban
trigo tres tristes
tigres”
Spout
Bolt
Dividir en
palabras
(1234,
tres,
tristes,
tigres…)
Bolt
Filtrar
símbolos
,
números
y
stopword
s
Bolt
Contar
palabras
Bolt
Contar
palabras
(tres,
tristes,
tigres…)
(tragab
an,trig
o
trigal…
)
( “tres”: 4,
“tristes”: 3,
“tigres”: 2,)
( “tragaban”:
2, “trigo”: 2,
“trigal”: 1)
Bolt
Imprimir
ARQUITECTURA
STORM UI
EJEMPLO EN LOCAL
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("palabras", new FiltrarSimbolos(), 1);
builder.setBolt(“conteo_palabras", new ContarPalabras(),
3)
.shuffleGrouping("palabras");
builder.setBolt(“listado_palabras", new ImprimirConteo(),
2)
.shuffleGrouping(“conteo_palabras");
Map conf = new HashMap();
conf.put(Config.TOPOLOGY_WORKERS, 4);
LocalCluster cluster = new LocalCluster();
cluster.submitTopology("mi_topologia", conf,
builder.createTopology());
EJEMPLO EN REMOTO
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("palabras", new FiltrarSimbolos(), 1);
builder.setBolt(“conteo_palabras", new ContarPalabras(),
3)
.shuffleGrouping("palabras");
builder.setBolt(“listado_palabras", new ImprimirConteo(),
2)
.shuffleGrouping(“conteo_palabras");
Map conf = new HashMap();
conf.put(Config.TOPOLOGY_WORKERS, 4);
StormSubmitter.submitTopology(“mi_topologia”,
conf, builder.createTopology());
COMPARACIÓN
COMPARACIÓN
II. LOS INDICADORES MANDAN
¿POR QUÉ USAMOS
STORM?
¿POR QUÉ ALGO EN
TIEMPO REAL?
¿QUÉ VALOR SE LES VA
A DAR A LOS CLIENTES?
¿SOLO SE NECESITA
TIEMPO REAL?
TOMA DE DECISIONES
Teoría de la información de Shannon:
La información y la incertidumbre están
inversamente relacionadas. Entre más
información tenga una sentencia,
menor incertidumbre hay.
Decisiones
TOMA DE DECISIONES
Hay 2.300 tuits
sobre la marca
85% negativos
15% positivos
Los mensajes negativos (85%)
contienen lo términos ladrones,
factura
El autor @MaoGomez ( de influencia alta,
ubicado en Cali) está publicando múltiples
mensajes negativos sobre la marca con las
palabras ladrones, factura y esta siendo difundido
(53 Rts y 14 conversaciones )
Tomar decisión
VALOR DE INDICADORES
0
El autor @MaoGomez ( de influencia
alta, en Cali) está publicando
múltiples mensajes negativos sobre
la marca con las palabras ladrones,
factura y esta siendo difundido (53
Rts y 14 conversaciones )
5 min 15 min 1 hora 1 día 1 mes
Aporta a la operación
No aporta a la estrategia
Tiempo necesario
VALOR DE INDICADORES
0
En el último mes el 55%
de las menciones
negativas pertenecieron a
la categoría facturación.
Con 33 autores de
influencia alta
5 min 15 min 1 hora 1 día 1 mes
Aporta a la estrategia
Tiempo necesario
GENERAR INDICADORES EN TIEMPO REAL
ARQUITECTURA PARA:
GENERAR INDICADORES HISTÓRICOS
III. ARQUITECTURA
Ingesta Persistencia Procesamiento Visualización
Apache Storm - Minando redes sociales y medios en tiempo real
IV. PROCESAMIENTO DE
LENGUAJE
PIPELINE
PROCESAMIENTO
MISIÓN
Pre-procesar y limpiar el texto
Detectar categoría de reputación
Calidad de producto, Atención al
cliente, Finanzas, Innovación, Ética+
Sociedad y Liderazgo
Detectar sentimiento
Positivo, Negativo, Neutro (NC)
Pre-proces
Filtrar stop
words
enriquecer
links
Stemmer
Limpieza
Tokenizar
Eliminar y filtrar
Reemplazar
onomatopeyas
y abreviaturas
Categorización
Supervisado
OpenNLP
No supervisado
Google
Word2vec
+
Sentimiento
Supervisado
OpenNLP
+
Inducir de reglas
diccionario
Visualización
CATEGORIZACIÓN
seed: ~20000 tuits
y posts
(Clasificador SVM)
Aprender reglas para decidir
si un determinado elemento
pertenece o no a un conjunto
Supervisado
Y
No Supervisado
Representación de palabras
en vectores característicos
Dump de Wikipedia
en español
Representar las palabras como vectores de muchas
dimensiones. Con ello, encuentran que palabras similares
se acomodan unas al lado de las otras en un espacio
vectorial altamente dimensional.
Ira ——> odio ——> enojo ——> iracundo
Pantalla ——> display ——> LCD ——>Oled
Bonito ——> atractivo ——> lindo ——> chévere
Apple ——> Samsung ——> LG ——> Motorola
Con solo
tuits y posts
Con
información
externa
(blogs,
Word2vec,
Wikipedia)
SENTIMIENTO
seed: ~75000 tuits
y posts
Supervisado Inducción de Reglas
Ó
+
Diccionario
palabras (-5,0,5)
(Clasificador SVM)
aprenden reglas para decidir
si un determinado elemento
pertenece o no a un conjunto

Más contenido relacionado

PDF
What Does Your Smart Car Know About You? Strata London 2016
PPTX
Porfolio Colegio Doroteas Curso 2015-2016
PDF
Merlin: The Ultimate Data Science Environment
PPTX
Introduction to Apache Drill - interactive query and analysis at scale
PDF
Strata NYC 2015 What does your smart device know about you?
PDF
RAPIM 2011
PDF
Km 65 tahun 2002
PDF
Narkoba
What Does Your Smart Car Know About You? Strata London 2016
Porfolio Colegio Doroteas Curso 2015-2016
Merlin: The Ultimate Data Science Environment
Introduction to Apache Drill - interactive query and analysis at scale
Strata NYC 2015 What does your smart device know about you?
RAPIM 2011
Km 65 tahun 2002
Narkoba

Destacado (18)

PDF
PSCO
PDF
Apache Drill Workshop
PDF
RAKORNIS 2010
PPTX
Pristine Advisers Presentation
PDF
Killing ETL with Apache Drill
PPTX
Drilling into Data with Apache Drill
PDF
Data Exploration with Apache Drill: Day 2
PDF
Apache Drill - Why, What, How
PPTX
Spark SQL versus Apache Drill: Different Tools with Different Rules
PDF
ISPS Code
PDF
Apache Drill and Zeppelin: Two Promising Tools You've Never Heard Of
PDF
Apache Drill: Building Highly Flexible, High Performance Query Engines by M.C...
PPT
KELAIKLAUTAN KAPAL DAN DOKUMENTASI KAPAL
PDF
Data Exploration with Apache Drill: Day 1
PPTX
Large scale, interactive ad-hoc queries over different datastores with Apache...
PDF
The Marketer's Guide To Customer Interviews
DOCX
Resumen saturday storm
PPTX
Apache Storm: Instalación
PSCO
Apache Drill Workshop
RAKORNIS 2010
Pristine Advisers Presentation
Killing ETL with Apache Drill
Drilling into Data with Apache Drill
Data Exploration with Apache Drill: Day 2
Apache Drill - Why, What, How
Spark SQL versus Apache Drill: Different Tools with Different Rules
ISPS Code
Apache Drill and Zeppelin: Two Promising Tools You've Never Heard Of
Apache Drill: Building Highly Flexible, High Performance Query Engines by M.C...
KELAIKLAUTAN KAPAL DAN DOKUMENTASI KAPAL
Data Exploration with Apache Drill: Day 1
Large scale, interactive ad-hoc queries over different datastores with Apache...
The Marketer's Guide To Customer Interviews
Resumen saturday storm
Apache Storm: Instalación
Publicidad

Similar a Apache Storm - Minando redes sociales y medios en tiempo real (20)

PPTX
Apache Storm: Introduccion
PPTX
Estudio sobre Spark, Storm, Kafka y Hive
PPTX
Construyendo una Infraestructura de Big Data rentable y escalable (la evoluci...
PPTX
Smart Grid Big Data e IoT
PDF
Tutorial en Apache Spark - Clasificando tweets en realtime
PDF
Presentación ASAI 2013 - Análisis de Sentimientos sobre un Corpus en Español ...
PPTX
Evolucion de big data @ mercadolibre.com
PPTX
MLOps.pptx
PPTX
Apache Storm: Desarrollo
PDF
Análisis de datos con Apache Spark
PDF
Commit 2018 - Integrando Microservicios y Machine Learning
PDF
Análisis de Sentimientos sobre un Corpus en Español - ASAI 2013 JAIIO
PPSX
G te c sesion3b- mapreduce
PPTX
Introducción a Apache Spark
PPT
Clasificación de Páginas web usando Marcadores sociales
PPTX
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
PDF
Opinion Mining #datafestAr
PPT
69 claves para conocer Big Data
PPTX
Intro a AI con Microsoft.pptx
Apache Storm: Introduccion
Estudio sobre Spark, Storm, Kafka y Hive
Construyendo una Infraestructura de Big Data rentable y escalable (la evoluci...
Smart Grid Big Data e IoT
Tutorial en Apache Spark - Clasificando tweets en realtime
Presentación ASAI 2013 - Análisis de Sentimientos sobre un Corpus en Español ...
Evolucion de big data @ mercadolibre.com
MLOps.pptx
Apache Storm: Desarrollo
Análisis de datos con Apache Spark
Commit 2018 - Integrando Microservicios y Machine Learning
Análisis de Sentimientos sobre un Corpus en Español - ASAI 2013 JAIIO
G te c sesion3b- mapreduce
Introducción a Apache Spark
Clasificación de Páginas web usando Marcadores sociales
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Opinion Mining #datafestAr
69 claves para conocer Big Data
Intro a AI con Microsoft.pptx
Publicidad

Último (20)

PDF
6°-Básico-Matemática-Diagrama-de-tallo-y-hoja_y_probabilidades.pdf
DOCX
Clase 2.1 Estudio de Casos - preguntas, hipótesis y objetivos 13.04.23.docx
PDF
MAPAMENTALLa tendencia pedagógica basada en competencias hacia una.pdf
PPTX
PresentaciónMODEhhhhhhhhhhhhhhhhhhhhhhhhhhSTO.pptx
PPTX
Tutoria 3. Unidad 2 PRUEBAS BIOLÓGICAS.pptx
PPTX
Introducción al analisis de datos con Power bi
PDF
Los 10 mayores Fondos Soberanos de Riqueza (2025).pdf
PDF
SEMANA 13.pdf MICROBIOLOGÍA Y PARÁSITISMO
PDF
Posiciones de billonarios sionistas en primer lugar a nivel global (1450-202...
PDF
Mapa mental.pdf esquema de realización en general
PPTX
TICS EN HONDURAS, PAIS DE CENTROAMERICA.pptx
PDF
lavado de manos_20250805_212935_0000.pdf
PDF
Crecimiento neoliberal y transición en el PIB de México.pdf
PDF
2425_s9_1_Bitacora_para_la_reflexion.pdf
DOCX
examen de E.fisicbbubjbjbujbjvjchgchgcgha.docx
PDF
001-Semana1-Tema1_Calculo-demandas-ACS-Parte1.pdf
PDF
RADIOGRAFIA DEL PARQUE AUTOMOTOR EN BOLIVA Y PROYECCIONES 2025-2030.pdf
PPTX
Presentación de el Cuarto Mandamiento.pptx
PPTX
Copia de Plantilla VSL Method Como crear videos ee 7 minutos hipnoticods.pptx
PDF
INFORME ESPECIAL BICENTENARIO DE BOLIVIA.pdf
6°-Básico-Matemática-Diagrama-de-tallo-y-hoja_y_probabilidades.pdf
Clase 2.1 Estudio de Casos - preguntas, hipótesis y objetivos 13.04.23.docx
MAPAMENTALLa tendencia pedagógica basada en competencias hacia una.pdf
PresentaciónMODEhhhhhhhhhhhhhhhhhhhhhhhhhhSTO.pptx
Tutoria 3. Unidad 2 PRUEBAS BIOLÓGICAS.pptx
Introducción al analisis de datos con Power bi
Los 10 mayores Fondos Soberanos de Riqueza (2025).pdf
SEMANA 13.pdf MICROBIOLOGÍA Y PARÁSITISMO
Posiciones de billonarios sionistas en primer lugar a nivel global (1450-202...
Mapa mental.pdf esquema de realización en general
TICS EN HONDURAS, PAIS DE CENTROAMERICA.pptx
lavado de manos_20250805_212935_0000.pdf
Crecimiento neoliberal y transición en el PIB de México.pdf
2425_s9_1_Bitacora_para_la_reflexion.pdf
examen de E.fisicbbubjbjbujbjvjchgchgcgha.docx
001-Semana1-Tema1_Calculo-demandas-ACS-Parte1.pdf
RADIOGRAFIA DEL PARQUE AUTOMOTOR EN BOLIVA Y PROYECCIONES 2025-2030.pdf
Presentación de el Cuarto Mandamiento.pptx
Copia de Plantilla VSL Method Como crear videos ee 7 minutos hipnoticods.pptx
INFORME ESPECIAL BICENTENARIO DE BOLIVIA.pdf

Apache Storm - Minando redes sociales y medios en tiempo real

  • 1. APACHE STORM Minando redes sociales y medios en tiempo real
  • 2. ACERCA DE… Ingeniero de sistemas con énfasis en inteligencia de negocio. Consultor líder de Big Data y analítica para PwC - PricewaterhouseCoopers. Co-fundador de Meridean, start-up para investigación de mercados y análisis de información no estructurada. (5 años). Creador de PeopleVector, plataforma para análisis de reputación corporativa en tiempo real.
  • 3. 1. Apache Storm 2. Los indicadores mandan 3. Arquitectura cloud 4. Procesamiento de lenguaje natural CONTENIDO
  • 5. ¿QUÉ TAN RÁPIDO ES “TIEMPO REAL”? Definición blanda: “El sistema generalmente no es tiempo real, pero si debe ser bastante rápido la mayoría del tiempo” Real time segundos ml s. Near real-time minutos - horas Offline horas - dias ej: filtros ej: correlaciones ej: análisis comportamiento Batch In motion
  • 6. I. APACHE STORM Es un framework para computación en tiempo real distribuida y tolerante a fallas. Originado en BackType/Twitter, bajo código abierto desde 2011. Procesamiento individual a medida que cada mensaje llega (at-least-one)
  • 7. CASOS DE USO Twitter (220 nodos, 50B mensajes/día. 2013) Detectar trending topics, personalización de ads, búsquedas ad-hoc, optimización de ingresos. Yahoo (320 nodos, 130k mensajes/s. 2013) Eventos de usuarios, analizar feeds de contenidos y logs de aplicaciones Spotify (22 nodos, 200k mensajes/s. 2014) Motor de recomendaciones, Generación de Ads y monitoreo Netflix, Alibaba, Cisco, WeatherChannel…
  • 8. LENGUAJES Hecho en: Clojure y algo de Java Para programar en: Java, Python,Scala, Ruby, cualquier otro.
  • 9. FILOSOFÍA DE STORM • Topologías: unen datos con funciones a través de un DAG (grafo acíclico dirigido).
  • 10. TOPOLOGÍA: SPOUT Y BOLTS “1234 Tres tristres tigres, tragaban trigo en un trigal, en tres tristes trasto, tragaban trigo tres tristes tigres” Spout Bolt Dividir en palabras (1234, tres, tristes, tigres…) Bolt Filtrar símbolos , números y stopword s Bolt Contar palabras Bolt Contar palabras (tres, tristes, tigres…) (tragab an,trig o trigal… ) ( “tres”: 4, “tristes”: 3, “tigres”: 2,) ( “tragaban”: 2, “trigo”: 2, “trigal”: 1) Bolt Imprimir
  • 13. EJEMPLO EN LOCAL TopologyBuilder builder = new TopologyBuilder(); builder.setSpout("palabras", new FiltrarSimbolos(), 1); builder.setBolt(“conteo_palabras", new ContarPalabras(), 3) .shuffleGrouping("palabras"); builder.setBolt(“listado_palabras", new ImprimirConteo(), 2) .shuffleGrouping(“conteo_palabras"); Map conf = new HashMap(); conf.put(Config.TOPOLOGY_WORKERS, 4); LocalCluster cluster = new LocalCluster(); cluster.submitTopology("mi_topologia", conf, builder.createTopology());
  • 14. EJEMPLO EN REMOTO TopologyBuilder builder = new TopologyBuilder(); builder.setSpout("palabras", new FiltrarSimbolos(), 1); builder.setBolt(“conteo_palabras", new ContarPalabras(), 3) .shuffleGrouping("palabras"); builder.setBolt(“listado_palabras", new ImprimirConteo(), 2) .shuffleGrouping(“conteo_palabras"); Map conf = new HashMap(); conf.put(Config.TOPOLOGY_WORKERS, 4); StormSubmitter.submitTopology(“mi_topologia”, conf, builder.createTopology());
  • 18. ¿POR QUÉ USAMOS STORM? ¿POR QUÉ ALGO EN TIEMPO REAL? ¿QUÉ VALOR SE LES VA A DAR A LOS CLIENTES? ¿SOLO SE NECESITA TIEMPO REAL?
  • 19. TOMA DE DECISIONES Teoría de la información de Shannon: La información y la incertidumbre están inversamente relacionadas. Entre más información tenga una sentencia, menor incertidumbre hay. Decisiones
  • 20. TOMA DE DECISIONES Hay 2.300 tuits sobre la marca 85% negativos 15% positivos Los mensajes negativos (85%) contienen lo términos ladrones, factura El autor @MaoGomez ( de influencia alta, ubicado en Cali) está publicando múltiples mensajes negativos sobre la marca con las palabras ladrones, factura y esta siendo difundido (53 Rts y 14 conversaciones ) Tomar decisión
  • 21. VALOR DE INDICADORES 0 El autor @MaoGomez ( de influencia alta, en Cali) está publicando múltiples mensajes negativos sobre la marca con las palabras ladrones, factura y esta siendo difundido (53 Rts y 14 conversaciones ) 5 min 15 min 1 hora 1 día 1 mes Aporta a la operación No aporta a la estrategia Tiempo necesario
  • 22. VALOR DE INDICADORES 0 En el último mes el 55% de las menciones negativas pertenecieron a la categoría facturación. Con 33 autores de influencia alta 5 min 15 min 1 hora 1 día 1 mes Aporta a la estrategia Tiempo necesario
  • 23. GENERAR INDICADORES EN TIEMPO REAL ARQUITECTURA PARA: GENERAR INDICADORES HISTÓRICOS
  • 28. PIPELINE PROCESAMIENTO MISIÓN Pre-procesar y limpiar el texto Detectar categoría de reputación Calidad de producto, Atención al cliente, Finanzas, Innovación, Ética+ Sociedad y Liderazgo Detectar sentimiento Positivo, Negativo, Neutro (NC)
  • 29. Pre-proces Filtrar stop words enriquecer links Stemmer Limpieza Tokenizar Eliminar y filtrar Reemplazar onomatopeyas y abreviaturas Categorización Supervisado OpenNLP No supervisado Google Word2vec + Sentimiento Supervisado OpenNLP + Inducir de reglas diccionario Visualización
  • 30. CATEGORIZACIÓN seed: ~20000 tuits y posts (Clasificador SVM) Aprender reglas para decidir si un determinado elemento pertenece o no a un conjunto Supervisado Y No Supervisado Representación de palabras en vectores característicos Dump de Wikipedia en español
  • 31. Representar las palabras como vectores de muchas dimensiones. Con ello, encuentran que palabras similares se acomodan unas al lado de las otras en un espacio vectorial altamente dimensional. Ira ——> odio ——> enojo ——> iracundo Pantalla ——> display ——> LCD ——>Oled Bonito ——> atractivo ——> lindo ——> chévere Apple ——> Samsung ——> LG ——> Motorola
  • 32. Con solo tuits y posts Con información externa (blogs, Word2vec, Wikipedia)
  • 33. SENTIMIENTO seed: ~75000 tuits y posts Supervisado Inducción de Reglas Ó + Diccionario palabras (-5,0,5) (Clasificador SVM) aprenden reglas para decidir si un determinado elemento pertenece o no a un conjunto