SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Antonio Calvo Morata
Carlos Congosto Sandoval
Grupo 08
1. Introducción
2. Topologías
3. Cluster Storm
4. Flujo de ejecución
5. Uso de lenguajes no JVM
6. Ejemplo
7. Apache Trident
8. Storm Flux
Índice
Apache Storm 2Grupo 08
Storm sirve para procesar flujos de datos
Pensado para procesamiento en tiempo real
● Complementa a Spark (procesamiento en batch)
Características:
Introducción
Apache Storm 3Grupo 08
● Tolerante a fallos
● Computación continua
● Soporta distintos lenguajes
● Distribuido
● Escalable
● Confiable
Topologías
Apache Storm 4Grupo 08
Se compone de:
● Spouts: recogen la información
y generan las tuplas
● Bolts: procesan las tuplas
(pueden almacenarlas en ficheros y BBDD)
● Streams: Secuencia de tuplas
Similares a un grafo donde:
● Cada nodo procesa la información
● Los datos se transmiten de nodo a nodo
Topologías
Apache Storm 5Grupo 08
Según cómo se agrupan los Streams y se reparten a los bolts
tenemos:
● Shuffle grouping - De forma aleatoria
● Fields grouping - Se agrupan por el campo especificado
● All grouping - Se envían a todos los bolts (broadcast)
● Global grouping - Se envían al bolt con id más bajo
● Direct grouping - Se indica a que bolt se envía
● Local grouping - Se envía al propio bolt
● Custom grouping - Permite especificar una agrupación propia
● None grouping - Funciona como el shuffle grouping
Cluster Storm
Apache Storm 6Grupo 08
Existen 2 tipos de nodos según el demonio que ejecutan:
● Master - Nimbus:
○ Distribuye las tareas entre los nodos
● Workers - Supervisor:
○ Ejecuta la porción de la topología asignada
Zookeeper:
● Mantiene los estados de los nodos master y workers
● Coordina nodos y mantiene los datos compartidos
Cluster Storm
Apache Storm 7Grupo 08
Componentes de un worker node:
● Worker process: responsable parte de topología
● Executor: ejecuta la parte de topología (dinámico)
● Task: instancia de cada elemento (estático)
Storm UI
● Demonio que permite comprobar en web la topología
Cluster Storm
Apache Storm 8Grupo 08
Estructura cluster similar a Spark
Cluster Manager → Zookeeper Cluster de Spark
Driver Program → Nimbus
Storm no usa caché
Cluster Storm vs Cluster Spark
Apache Storm 9Grupo 08
1. Nimbus espera la topología
2. Nimbus procesa la topología y genera las tareas y su orden
3. Nimbus distribuye las tareas a los Supervisor
4. Los Supervisor mandan señal “keep alive” a Nimbus
5. Si un Supervisor muere se reasigna su tarea
6. Si Nimbus muere los Supervisor seguirán con su tarea asignada
7. Los Supervisor completan sus tareas y esperan nuevas
Flujo de ejecución
Apache Storm 10Grupo 08
8. Zookeeper reinicia a los nodos muertos:
a. Siguen sus tareas
b. Storm garantiza
i. Toda tarea se ejecuta al menos una vez
ii. Toda tupla es procesada al menos una vez
9. Una vez la topología es procesada
c. Nimbus espera nueva Topología
d. Supervisors esperan nuevas tareas
Flujo de ejecución
Apache Storm 11Grupo 08
Los Bolts y Spouts se pueden implementar en cualquier lenguaje
Usa un protocolo llamado multilang protocol
● Iniciar handshake
○ Crear fichero vacío para informar del pid
● Iniciar bucle
● Leer y escribir tuplas
○ Implementar emitir tuplas, ack o fail
Uso de lenguajes no JVM
Apache Storm 12Grupo 08
Mensajes JSON para comunicar Bolts y Spouts
Permite implementar cada uno en un lenguaje distinto
Uso de lenguajes no JVM
Apache Storm 13Grupo 08
STDIN STDOUT
Ejemplo - Spout(I)
Apache Storm 14Grupo 08
Ejemplo de un Spout que lee palabras de un archivo
Métodos:
● ack
● close
● fail
Ejemplo - Spout(II)
Apache Storm 15Grupo 08
nextTuple - Lee el fichero y emite las tupla
● Es llamado periódicamente
● Tiene que dejar el hilo cuando no esté trabajando
Ejemplo - Spout(III)
Apache Storm 16Grupo 08
open
● 1º en ser llamado
declareOutputFields
● Declara el campo
de salida
Ejemplo - Bolts(I)
Apache Storm 17Grupo 08
Prepare
● 1º En ser llamado
Execute
● Procesa la tupla
El método execute
● Procesa la tupla
● No emite más tuplas
○ método ack
Ejemplo - Bolts(II.a)
Apache Storm 18Grupo 08
prepare
● 1º En ser llamado
cleanup
● Al terminar la
topología
Ejemplo - Bolts(II.b)
Apache Storm 19Grupo 08
Ejemplo - Main
Apache Storm 20Grupo 08
Método main
● Se declara la
topología
● Se crean los
parámetros de
configuración
● Se inicia la
topología
Abstracción de Apache Storm
Funciona con Spouts y Bolts
autogenerados
Apache Trident
Apache Storm 21Grupo 08
Aporta métodos y operaciones Trident
● Filter
● Functions
● Aggregations
● Grouping
● Merging and Joining
Apache Trident - Operaciones
Apache Storm 22Grupo 08
Determina si una entrada es válida
Apache Trident - Filter
Apache Storm 23Grupo 08
Permite implementar una función para procesar la tupla
Apache Trident - Functions
Apache Storm 24Grupo 08
Ejecuta una función de agregación sobre la entrada
Apache Trident - Aggregations
Apache Storm 25Grupo 08
Agrupa el valor de las tuplas según el campo especificado
Apache Trident - Grouping
Apache Storm 26Grupo 08
Combinan dos o más flujos
Apache Trident - Merging and Joining
Apache Storm 27Grupo 08
Framework para crear topologías Storm
Simplifica el despliegue de topologías Storm, Trident y Flux
Storm Flux
Apache Storm 28Grupo 08
Permite crear topologías Flux en un fichero .yaml
Storm Flux
Apache Storm 29Grupo 08
Bibliografía
Apache Storm 30Grupo 08
http://storm.apache.org/
https://www.adictosaltrabajo.com/tutoriales/introduccion-storm/
● Introducción (3)
● Topologías (4, 5)
● Clúster Storm [6 - 9]
http://spark.apache.org/
Apuntes Apache Spark (Enrique Martín Martín)
Asignatura SGDI Máster Ingeniería Informática Curso: 2016-2017,
Facultad de Informática (UCM)
● Ejemplos de spark [23-27]
● Diferencias con Storm (3, 9)
Bibliografía
Apache Storm 31Grupo 08
http://storm.apache.org/releases/current/Multilang-protocol.html
● Uso de lenguajes no JVM (12, 13)
https://www.adictosaltrabajo.com/tutoriales/trident-storm/
http://storm.apache.org/releases/1.0.1/Trident-tutorial.html
● Apache Trident (21, 22)
https://github.com/apache/storm/tree/master/external/flux
http://storm.apache.org/releases/2.0.0-SNAPSHOT/flux.html
● Storm Flux (28, 29)
Bibliografía
Apache Storm 32Grupo 08
Wall, L., Extraction, P., Language, R., Os, M., Scripting, P., Shell, U., … Point, T. (2015).
https://www.tutorialspoint.com/apache_storm
● Capítulo 3 → Cluster Storm [6-8]
● Capítulo 4 → Flujo de ejecución (10, 11)
Jain, A., & Nalya, A. (2014). Learning Storm: Create real-time stream processing
applications with Apache Storm.
● Capítulo 1 → Introducción (3)
● Capítulo 2 → Ejemplo [14-20]
● Capítulo 3 → Topologías (4, 5)
● Capítulo 7 → Uso de lenguajes no JVM (12, 13)
Bibliografía
Apache Storm 33Grupo 08
Jain, A., & Nalya, A. (2014). Learning Storm: Create real-time stream processing
applications with Apache Storm.
● Capítulo 1 → Introducción y Topologías (3, 4)
● Capítulo 1 y 2 → Cluster Storm (7, 8)
Para saber más… (a parte de los links y libros ya mencionados)
● Anderson, Q. (n.d.). Storm Real-time: Processing Cookbook.
● Goetz, P., & O’Neill, B. (2014). Storm Blueprints: Patterns for Distributed
Real-time Computation.

Más contenido relacionado

La actualidad más candente (19)

Lab5 guia
Lab5 guiaLab5 guia
Lab5 guia
 
Preguntas
PreguntasPreguntas
Preguntas
 
C R O N O M E T R O
C R O N O M E T R OC R O N O M E T R O
C R O N O M E T R O
 
Cronometro
CronometroCronometro
Cronometro
 
Framework
FrameworkFramework
Framework
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 
Programación multitarea
Programación multitareaProgramación multitarea
Programación multitarea
 
Introducción a java
Introducción a javaIntroducción a java
Introducción a java
 
Encriptación simétrica-AES Y RC2
Encriptación simétrica-AES Y RC2Encriptación simétrica-AES Y RC2
Encriptación simétrica-AES Y RC2
 
Multitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplosMultitarea e hilos en java con ejemplos
Multitarea e hilos en java con ejemplos
 
PCJ Sesión 9: Threads
PCJ Sesión 9: ThreadsPCJ Sesión 9: Threads
PCJ Sesión 9: Threads
 
Procesamiento superescalar
Procesamiento superescalarProcesamiento superescalar
Procesamiento superescalar
 
Tema 2: Procesadores superescalares.
Tema 2: Procesadores superescalares.Tema 2: Procesadores superescalares.
Tema 2: Procesadores superescalares.
 
Thread 02
Thread 02Thread 02
Thread 02
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
Thread 01
Thread 01Thread 01
Thread 01
 
Hilos – threads en java
Hilos – threads   en javaHilos – threads   en java
Hilos – threads en java
 

Destacado

Zaragoza 23 11-2016 ciclo tecnologias para la educación
Zaragoza 23 11-2016 ciclo tecnologias para la educaciónZaragoza 23 11-2016 ciclo tecnologias para la educación
Zaragoza 23 11-2016 ciclo tecnologias para la educaciónAntonio Calvo Morata
 
Estandares para tecnologias de la educación
Estandares para tecnologias de la educaciónEstandares para tecnologias de la educación
Estandares para tecnologias de la educaciónAntonio Calvo Morata
 
National Weather Service Storm Spotter Training
National Weather Service Storm Spotter TrainingNational Weather Service Storm Spotter Training
National Weather Service Storm Spotter Trainingchowd
 
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...Nathan Bijnens
 
Seminario eMadrid sobre "Serious games". Un juego para concienciar y evitar ...
 Seminario eMadrid sobre "Serious games". Un juego para concienciar y evitar ... Seminario eMadrid sobre "Serious games". Un juego para concienciar y evitar ...
Seminario eMadrid sobre "Serious games". Un juego para concienciar y evitar ...eMadrid network
 
A real time architecture using Hadoop and Storm @ FOSDEM 2013
A real time architecture using Hadoop and Storm @ FOSDEM 2013A real time architecture using Hadoop and Storm @ FOSDEM 2013
A real time architecture using Hadoop and Storm @ FOSDEM 2013Nathan Bijnens
 
Storm: distributed and fault-tolerant realtime computation
Storm: distributed and fault-tolerant realtime computationStorm: distributed and fault-tolerant realtime computation
Storm: distributed and fault-tolerant realtime computationnathanmarz
 
Realtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and HadoopRealtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and HadoopDataWorks Summit
 
Kafka and Storm - event processing in realtime
Kafka and Storm - event processing in realtimeKafka and Storm - event processing in realtime
Kafka and Storm - event processing in realtimeGuido Schmutz
 
Apache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignApache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignMichael Noll
 

Destacado (16)

Educon2016 12 04-2016
Educon2016  12 04-2016Educon2016  12 04-2016
Educon2016 12 04-2016
 
Zaragoza 23 11-2016 ciclo tecnologias para la educación
Zaragoza 23 11-2016 ciclo tecnologias para la educaciónZaragoza 23 11-2016 ciclo tecnologias para la educación
Zaragoza 23 11-2016 ciclo tecnologias para la educación
 
Presentación e-madrid
Presentación e-madridPresentación e-madrid
Presentación e-madrid
 
TMI juegos serios
TMI juegos seriosTMI juegos serios
TMI juegos serios
 
Estandares para tecnologias de la educación
Estandares para tecnologias de la educaciónEstandares para tecnologias de la educación
Estandares para tecnologias de la educación
 
National Weather Service Storm Spotter Training
National Weather Service Storm Spotter TrainingNational Weather Service Storm Spotter Training
National Weather Service Storm Spotter Training
 
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...
A real-time (lambda) architecture using Hadoop & Storm (NoSQL Matters Cologne...
 
Seminario eMadrid sobre "Serious games". Un juego para concienciar y evitar ...
 Seminario eMadrid sobre "Serious games". Un juego para concienciar y evitar ... Seminario eMadrid sobre "Serious games". Un juego para concienciar y evitar ...
Seminario eMadrid sobre "Serious games". Un juego para concienciar y evitar ...
 
A real time architecture using Hadoop and Storm @ FOSDEM 2013
A real time architecture using Hadoop and Storm @ FOSDEM 2013A real time architecture using Hadoop and Storm @ FOSDEM 2013
A real time architecture using Hadoop and Storm @ FOSDEM 2013
 
Storm - SpaaS
Storm - SpaaSStorm - SpaaS
Storm - SpaaS
 
Pcc
PccPcc
Pcc
 
Storm: distributed and fault-tolerant realtime computation
Storm: distributed and fault-tolerant realtime computationStorm: distributed and fault-tolerant realtime computation
Storm: distributed and fault-tolerant realtime computation
 
Realtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and HadoopRealtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and Hadoop
 
Kafka and Storm - event processing in realtime
Kafka and Storm - event processing in realtimeKafka and Storm - event processing in realtime
Kafka and Storm - event processing in realtime
 
Apache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignApache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - Verisign
 
SlideShare 101
SlideShare 101SlideShare 101
SlideShare 101
 

Similar a Storm

Apache Storm: Introduccion
Apache Storm: IntroduccionApache Storm: Introduccion
Apache Storm: IntroduccionStratebi
 
Openmp
OpenmpOpenmp
OpenmpUnex
 
Estudio sobre Spark, Storm, Kafka y Hive
Estudio sobre Spark, Storm, Kafka y HiveEstudio sobre Spark, Storm, Kafka y Hive
Estudio sobre Spark, Storm, Kafka y HiveWellness Telecom
 
Terraspace, the definitive terraform framework
Terraspace, the definitive terraform frameworkTerraspace, the definitive terraform framework
Terraspace, the definitive terraform frameworkMario IC
 
Introducción a Tcp/Ip
Introducción a Tcp/Ip Introducción a Tcp/Ip
Introducción a Tcp/Ip Gabriel Davini
 
Why Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoWhy Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoBig Data Spain
 
Segundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSegundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSebastian Gonzalez
 
Instalación de Apache Tomcat 8
Instalación de Apache Tomcat 8Instalación de Apache Tomcat 8
Instalación de Apache Tomcat 8pablozacrosuarez
 
Osi manjarres larry 661399
Osi manjarres larry  661399Osi manjarres larry  661399
Osi manjarres larry 661399Larry-97
 
El Procesador o CPU 2
El Procesador o CPU 2El Procesador o CPU 2
El Procesador o CPU 2Jorge Pulido
 
Evasión de Técnicas Forenses
Evasión de Técnicas ForensesEvasión de Técnicas Forenses
Evasión de Técnicas ForensesConferencias FIST
 
Implantación de una solución en red para Backups en IRAM usando Bacula
Implantación de una solución en red para Backups en IRAM usando BaculaImplantación de una solución en red para Backups en IRAM usando Bacula
Implantación de una solución en red para Backups en IRAM usando BaculaMellado Pablo
 
Modelo Persistente
Modelo PersistenteModelo Persistente
Modelo Persistenteguest0fc4fa
 
"Hola Mundo" C18, PIC18F y MPLAB
"Hola Mundo"  C18,  PIC18F y MPLAB"Hola Mundo"  C18,  PIC18F y MPLAB
"Hola Mundo" C18, PIC18F y MPLABBlackD10
 

Similar a Storm (20)

Apache Storm: Introduccion
Apache Storm: IntroduccionApache Storm: Introduccion
Apache Storm: Introduccion
 
Thread
ThreadThread
Thread
 
Openmp
OpenmpOpenmp
Openmp
 
Estudio sobre Spark, Storm, Kafka y Hive
Estudio sobre Spark, Storm, Kafka y HiveEstudio sobre Spark, Storm, Kafka y Hive
Estudio sobre Spark, Storm, Kafka y Hive
 
Terraspace, the definitive terraform framework
Terraspace, the definitive terraform frameworkTerraspace, the definitive terraform framework
Terraspace, the definitive terraform framework
 
De Threads a CompletableFutures
De Threads a CompletableFuturesDe Threads a CompletableFutures
De Threads a CompletableFutures
 
Introducción a Tcp/Ip
Introducción a Tcp/Ip Introducción a Tcp/Ip
Introducción a Tcp/Ip
 
Why Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoWhy Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén Casado
 
Segundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSegundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corte
 
Instalación de Apache Tomcat 8
Instalación de Apache Tomcat 8Instalación de Apache Tomcat 8
Instalación de Apache Tomcat 8
 
Ud3 inocente alcaide
Ud3 inocente alcaideUd3 inocente alcaide
Ud3 inocente alcaide
 
Osi manjarres larry 661399
Osi manjarres larry  661399Osi manjarres larry  661399
Osi manjarres larry 661399
 
Tomcat
TomcatTomcat
Tomcat
 
El Procesador o CPU 2
El Procesador o CPU 2El Procesador o CPU 2
El Procesador o CPU 2
 
Evasión de Técnicas Forenses
Evasión de Técnicas ForensesEvasión de Técnicas Forenses
Evasión de Técnicas Forenses
 
Implantación de una solución en red para Backups en IRAM usando Bacula
Implantación de una solución en red para Backups en IRAM usando BaculaImplantación de una solución en red para Backups en IRAM usando Bacula
Implantación de una solución en red para Backups en IRAM usando Bacula
 
Modelo Persistente
Modelo PersistenteModelo Persistente
Modelo Persistente
 
En 20 minutos ... Arquitectura Oracle
En 20 minutos ... Arquitectura OracleEn 20 minutos ... Arquitectura Oracle
En 20 minutos ... Arquitectura Oracle
 
"Hola Mundo" C18, PIC18F y MPLAB
"Hola Mundo"  C18,  PIC18F y MPLAB"Hola Mundo"  C18,  PIC18F y MPLAB
"Hola Mundo" C18, PIC18F y MPLAB
 
Sesión 2.- Monitor de red y ARP.pdf
Sesión 2.- Monitor de red y ARP.pdfSesión 2.- Monitor de red y ARP.pdf
Sesión 2.- Monitor de red y ARP.pdf
 

Storm

  • 1. Antonio Calvo Morata Carlos Congosto Sandoval Grupo 08
  • 2. 1. Introducción 2. Topologías 3. Cluster Storm 4. Flujo de ejecución 5. Uso de lenguajes no JVM 6. Ejemplo 7. Apache Trident 8. Storm Flux Índice Apache Storm 2Grupo 08
  • 3. Storm sirve para procesar flujos de datos Pensado para procesamiento en tiempo real ● Complementa a Spark (procesamiento en batch) Características: Introducción Apache Storm 3Grupo 08 ● Tolerante a fallos ● Computación continua ● Soporta distintos lenguajes ● Distribuido ● Escalable ● Confiable
  • 4. Topologías Apache Storm 4Grupo 08 Se compone de: ● Spouts: recogen la información y generan las tuplas ● Bolts: procesan las tuplas (pueden almacenarlas en ficheros y BBDD) ● Streams: Secuencia de tuplas Similares a un grafo donde: ● Cada nodo procesa la información ● Los datos se transmiten de nodo a nodo
  • 5. Topologías Apache Storm 5Grupo 08 Según cómo se agrupan los Streams y se reparten a los bolts tenemos: ● Shuffle grouping - De forma aleatoria ● Fields grouping - Se agrupan por el campo especificado ● All grouping - Se envían a todos los bolts (broadcast) ● Global grouping - Se envían al bolt con id más bajo ● Direct grouping - Se indica a que bolt se envía ● Local grouping - Se envía al propio bolt ● Custom grouping - Permite especificar una agrupación propia ● None grouping - Funciona como el shuffle grouping
  • 7. Existen 2 tipos de nodos según el demonio que ejecutan: ● Master - Nimbus: ○ Distribuye las tareas entre los nodos ● Workers - Supervisor: ○ Ejecuta la porción de la topología asignada Zookeeper: ● Mantiene los estados de los nodos master y workers ● Coordina nodos y mantiene los datos compartidos Cluster Storm Apache Storm 7Grupo 08
  • 8. Componentes de un worker node: ● Worker process: responsable parte de topología ● Executor: ejecuta la parte de topología (dinámico) ● Task: instancia de cada elemento (estático) Storm UI ● Demonio que permite comprobar en web la topología Cluster Storm Apache Storm 8Grupo 08
  • 9. Estructura cluster similar a Spark Cluster Manager → Zookeeper Cluster de Spark Driver Program → Nimbus Storm no usa caché Cluster Storm vs Cluster Spark Apache Storm 9Grupo 08
  • 10. 1. Nimbus espera la topología 2. Nimbus procesa la topología y genera las tareas y su orden 3. Nimbus distribuye las tareas a los Supervisor 4. Los Supervisor mandan señal “keep alive” a Nimbus 5. Si un Supervisor muere se reasigna su tarea 6. Si Nimbus muere los Supervisor seguirán con su tarea asignada 7. Los Supervisor completan sus tareas y esperan nuevas Flujo de ejecución Apache Storm 10Grupo 08
  • 11. 8. Zookeeper reinicia a los nodos muertos: a. Siguen sus tareas b. Storm garantiza i. Toda tarea se ejecuta al menos una vez ii. Toda tupla es procesada al menos una vez 9. Una vez la topología es procesada c. Nimbus espera nueva Topología d. Supervisors esperan nuevas tareas Flujo de ejecución Apache Storm 11Grupo 08
  • 12. Los Bolts y Spouts se pueden implementar en cualquier lenguaje Usa un protocolo llamado multilang protocol ● Iniciar handshake ○ Crear fichero vacío para informar del pid ● Iniciar bucle ● Leer y escribir tuplas ○ Implementar emitir tuplas, ack o fail Uso de lenguajes no JVM Apache Storm 12Grupo 08
  • 13. Mensajes JSON para comunicar Bolts y Spouts Permite implementar cada uno en un lenguaje distinto Uso de lenguajes no JVM Apache Storm 13Grupo 08 STDIN STDOUT
  • 14. Ejemplo - Spout(I) Apache Storm 14Grupo 08 Ejemplo de un Spout que lee palabras de un archivo Métodos: ● ack ● close ● fail
  • 15. Ejemplo - Spout(II) Apache Storm 15Grupo 08 nextTuple - Lee el fichero y emite las tupla ● Es llamado periódicamente ● Tiene que dejar el hilo cuando no esté trabajando
  • 16. Ejemplo - Spout(III) Apache Storm 16Grupo 08 open ● 1º en ser llamado declareOutputFields ● Declara el campo de salida
  • 17. Ejemplo - Bolts(I) Apache Storm 17Grupo 08 Prepare ● 1º En ser llamado Execute ● Procesa la tupla
  • 18. El método execute ● Procesa la tupla ● No emite más tuplas ○ método ack Ejemplo - Bolts(II.a) Apache Storm 18Grupo 08
  • 19. prepare ● 1º En ser llamado cleanup ● Al terminar la topología Ejemplo - Bolts(II.b) Apache Storm 19Grupo 08
  • 20. Ejemplo - Main Apache Storm 20Grupo 08 Método main ● Se declara la topología ● Se crean los parámetros de configuración ● Se inicia la topología
  • 21. Abstracción de Apache Storm Funciona con Spouts y Bolts autogenerados Apache Trident Apache Storm 21Grupo 08
  • 22. Aporta métodos y operaciones Trident ● Filter ● Functions ● Aggregations ● Grouping ● Merging and Joining Apache Trident - Operaciones Apache Storm 22Grupo 08
  • 23. Determina si una entrada es válida Apache Trident - Filter Apache Storm 23Grupo 08
  • 24. Permite implementar una función para procesar la tupla Apache Trident - Functions Apache Storm 24Grupo 08
  • 25. Ejecuta una función de agregación sobre la entrada Apache Trident - Aggregations Apache Storm 25Grupo 08
  • 26. Agrupa el valor de las tuplas según el campo especificado Apache Trident - Grouping Apache Storm 26Grupo 08
  • 27. Combinan dos o más flujos Apache Trident - Merging and Joining Apache Storm 27Grupo 08
  • 28. Framework para crear topologías Storm Simplifica el despliegue de topologías Storm, Trident y Flux Storm Flux Apache Storm 28Grupo 08
  • 29. Permite crear topologías Flux en un fichero .yaml Storm Flux Apache Storm 29Grupo 08
  • 30. Bibliografía Apache Storm 30Grupo 08 http://storm.apache.org/ https://www.adictosaltrabajo.com/tutoriales/introduccion-storm/ ● Introducción (3) ● Topologías (4, 5) ● Clúster Storm [6 - 9] http://spark.apache.org/ Apuntes Apache Spark (Enrique Martín Martín) Asignatura SGDI Máster Ingeniería Informática Curso: 2016-2017, Facultad de Informática (UCM) ● Ejemplos de spark [23-27] ● Diferencias con Storm (3, 9)
  • 31. Bibliografía Apache Storm 31Grupo 08 http://storm.apache.org/releases/current/Multilang-protocol.html ● Uso de lenguajes no JVM (12, 13) https://www.adictosaltrabajo.com/tutoriales/trident-storm/ http://storm.apache.org/releases/1.0.1/Trident-tutorial.html ● Apache Trident (21, 22) https://github.com/apache/storm/tree/master/external/flux http://storm.apache.org/releases/2.0.0-SNAPSHOT/flux.html ● Storm Flux (28, 29)
  • 32. Bibliografía Apache Storm 32Grupo 08 Wall, L., Extraction, P., Language, R., Os, M., Scripting, P., Shell, U., … Point, T. (2015). https://www.tutorialspoint.com/apache_storm ● Capítulo 3 → Cluster Storm [6-8] ● Capítulo 4 → Flujo de ejecución (10, 11) Jain, A., & Nalya, A. (2014). Learning Storm: Create real-time stream processing applications with Apache Storm. ● Capítulo 1 → Introducción (3) ● Capítulo 2 → Ejemplo [14-20] ● Capítulo 3 → Topologías (4, 5) ● Capítulo 7 → Uso de lenguajes no JVM (12, 13)
  • 33. Bibliografía Apache Storm 33Grupo 08 Jain, A., & Nalya, A. (2014). Learning Storm: Create real-time stream processing applications with Apache Storm. ● Capítulo 1 → Introducción y Topologías (3, 4) ● Capítulo 1 y 2 → Cluster Storm (7, 8) Para saber más… (a parte de los links y libros ya mencionados) ● Anderson, Q. (n.d.). Storm Real-time: Processing Cookbook. ● Goetz, P., & O’Neill, B. (2014). Storm Blueprints: Patterns for Distributed Real-time Computation.