Apache Storm – conceptos básicos

Apache Storm lee el flujo de datos en vivo sin procesar desde un extremo, lo pasa a través de una serie de pequeños bloques de procesamiento y genera la información procesada / de carga útil en el otro extremo.

El siguiente diagrama muestra el concepto básico de Apache Storm.

Concepto basico

Echemos ahora un vistazo más de cerca a los componentes de Apache Storm:

Componentes Descripción
Tupla Una tupla es la estructura de datos principal en Storm. Esta es una lista de artículos pedidos. De forma predeterminada, una tupla admite todos los tipos de datos. Por lo general, se modela como un conjunto de valores separados por comas y se pasa al clúster Storm.
Transmisión Stream es una secuencia desordenada de tuplas.
Narices Fuente de flujo. Por lo general, Storm acepta entradas de fuentes de datos sin procesar como Twitter Streaming API, cola de Apache Kafka, cola de Kestrel, etc. De lo contrario, puede escribir radios para leer datos de fuentes de datos. ISpout es la interfaz principal para implementar spouts. Algunas de las interfaces específicas son IRichSpout, BaseRichSpout, KafkaSpout, etc.
Pernos Los pernos son bloques de procesamiento lógico. Los picos transfieren datos para manejar pernos y pernos y crear un nuevo flujo de salida. Los pernos pueden realizar filtrado, agregación, agregación e interacción con fuentes de datos y bases de datos. Bolt recibe datos y los envía a uno o más tornillos. IBolt es la interfaz principal para atornillar. Algunas de las interfaces comunes son IRichBolt, IBasicBolt, etc.

Tomemos un ejemplo de análisis de Twitter en tiempo real y veamos cómo se puede simular en Apache Storm. El siguiente diagrama muestra la estructura.

Análisis de Twitter

La entrada para el análisis de Twitter proviene de la API de transmisión de Twitter. Spout leerá los tweets de los usuarios que utilizan la API de transmisión de Twitter y los generará como un flujo de tuplas. Una tupla de canalización tendrá el nombre de usuario de Twitter y un tweet como valores separados por comas. Este par de tuplas luego se enrutará a Bolt, y Bolt dividirá el tweet en palabras individuales, calculará el recuento de palabras y almacenará la información en la fuente de datos configurada. Ahora podemos obtener fácilmente el resultado consultando la fuente de datos.

Topología

Los picos y los pernos están conectados entre sí para formar una topología. La lógica de la aplicación en tiempo real se especifica en la topología de Storm. En pocas palabras, la topología es un gráfico dirigido en el que los vértices son cálculos y los bordes son el flujo de datos.

Una topología simple comienza con picos. El pico transfiere datos a uno o más pernos. Un perno es el nodo en la topología que tiene la menor lógica de procesamiento, y la salida del perno se puede pasar a otro perno como entrada.

Storm mantiene la topología siempre en funcionamiento hasta que la destruye. La tarea principal de Apache Storm es lanzar una topología y simultáneamente lanzar cualquier número de topologías.

Tareas

Ahora tiene un conocimiento básico de los picos y los pernos. Representan la unidad lógica más pequeña de la topología, y la topología se construye utilizando un patrón de ranura y perno único. Deben realizarse correctamente en un orden específico para que la topología funcione correctamente. La ejecución de cada Storm jet y la recámara se denomina «Tareas». En términos simples, una tarea es la ejecución de un pico o un cerrojo. En algún momento, cada pico y perno puede tener múltiples instancias, cada una trabajando con varios hilos separados.

Trabajadores

La topología funciona de forma distribuida en varios nodos trabajadores. Storm distribuye las tareas de manera uniforme en todos los nodos de trabajadores. La función del nodo trabajador es realizar un seguimiento de los trabajos e iniciar o detener procesos cada vez que llega un nuevo trabajo.

Agrupación de transmisiones

Los datos fluyen de los picos a los pernos o de un perno a otro. La agrupación de flujo controla el enrutamiento de tuplas en una topología y nos ayuda a comprender el flujo de tuplas en una topología. Como se describe a continuación, hay cuatro agrupaciones integradas.

Agrupación aleatoria

Cuando se agrupan en orden aleatorio, el mismo número de tuplas se distribuye aleatoriamente entre todos los trabajadores que realizan los pernos. El siguiente diagrama muestra la estructura.

Agrupación aleatoria

Agrupar campos

Los campos con el mismo valor en tuplas se agrupan y las tuplas restantes permanecen fuera. Las tuplas con los mismos valores de campo se envían al mismo trabajador de pernos. Por ejemplo, si la secuencia está agrupada por el campo «palabra», las tuplas con la misma cadena «Hola» saltarán al mismo ejecutor. El siguiente diagrama muestra cómo funciona la agrupación de campos.

Agrupar campos

Agrupación global

Todos los hilos se pueden agrupar y dirigir a un perno. Esta agrupación envía las tuplas generadas por todas las instancias de origen a una única instancia de destino (en particular, elija el ejecutor con la identificación más baja).

Agrupación global

Todo agrupamiento

Toda la agrupación envía una copia de cada tupla a todas las instancias del perno receptor. Esta agrupación se utiliza para enviar señales a los tornillos. Todas las agrupaciones son útiles para las operaciones de combinación.

Todo agrupamiento

🚫