La topología en Storm es el mapa de Spouts y Bolts que muestran el flujo de los datos entre los distintos componentes de manera continua, realizando una analogía con Apache Hadoop la topología sería el MapReduce pero sin un fin en el tiempo.

StormTopologiaTuple

Uno de los temas más importantes a la hora de diseñar una topología es definir el intercambio de los datos entre los componentes. Las agrupaciones de Stream especifican como son consumidas las tuplas por cada Bolt y de que manera.

StormGrouping

Un stream en Storm es una secuencia ilimitada de tuplas.

StormStreamTuple

Estas son las distintas agrupaciones de stream que existen en Storm:

  • Shuffle Grouping

El envío de las tuplas a los bolts es aleatorio y uniformente. Sólo válido para operaciones atómicas

  • Local o Shuffle

Si el Bolt de destino tiene una o más tareas en el mismo proceso de trabajo las tuplas se envían preferentemente a esos workers

  • Fiels Grouping

El stream se divide por los campos especificados en la agrupación. Por ejemplo si un stream contiene un campo “user” forzaríamos que todas las tuplas con el mismo user irán a la misma tarea

  • All Grouping

Los stream son replicados atraves de todas las tareas de los bolts

  • Custom Grouping

Permite implementar una agrupación personalizada

  • Direct Grouping

El productor de la tupla decide qué tarea del consumidor recibirá esta tupla

  • Global Grouping

Envía todas las tuplas a un único destino

  • None Grouping

Esta agrupación es para indicar que no importa cómo se agrupa la corriente. En la práctica es similar a la Shuffle

Anuncios