Trident es una abstracción de alto nivel sobre Storm para facilitar el procesamiento de streams stateful.
Trident permite realizar joins, agregaciones, groups, funciones y filtros sobre los datos recibidos. Para saber más sobre Trident podéis mirar (entre otras mucha cosas) el API de Trident y el post un poco de Trident.

Storm permite ejecutar RPC (Llamadas a procedimientos remotos) de forma distribuida mediante la topología DRPC.

StormDRPC

Un ejemplo sobre como utilizar Trident para realizar consultas sobre el típico caso de la cuenta de palabras sería este:

  • Creamos el Spout para el test

TridentSpoutTest

  •  Creamos la topología para el contado de las palabras

TridentStatewordCounts

  • Creamos la topologia DRPC para las consultas del numero de ocurrencias de las palabras

TopologynewDRPCStream

  • Para realizar las consultas utilizamos el método execute del DRPC

Consultas

La clase completa TridentWordCount.java quedaría de la siguiente manera:

TridentWordCount

Y el resultado de la ejecución de la clase con las cuatro consultas nos muestra algo como esto:

ocurrencias

Anuncios