Agrupaciones de Stream en Storm

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

Publicado en BigData, Java, Storm. 1 Comment »

Humor: Cuando el comercial vende un producto

Accediendo a Hive mediante JDBC

  • Crear proyecto cliente JDBC Hive

mvn archetype:generate -DgroupId=test -DartifactId=hiveclientjdbc

  • Crear el pom.xml a utilizar con las dependencias necesarias

pom.xml

  • Crear la clase de conexión HiveClientJdbc.java

HiveClientJdbc

  • Cargar ficheros de datos en HDFS. Los ficheros que se utilizan se encuentran en el raíz de la distribución de Pivotal (/retail_demo)

./load_data_to_HDFS.sh

load_data_to_HDFS

  • Crear las tablas de Hive

hive -f create_hive_tables.sql

  • Cargar las tablas de Hive con los datos de los ficheros

hive -f loadDataHiveTables.sql

loadDataHieTables

  • Ejecutar el proyecto maven cliente

mvn compile exec:java -Dexec.mainClass=”test.HiveClientJdbc”

Los ficheros mencionados se encuetran aquí

A %d blogueros les gusta esto: