Conceptos básicos de las tormentas
La estructura informática distribuida de Storm se denomina topología y consta de flujo, pico y perno.
El spout representa el punto de entrada de datos en la topología de tormenta. Se conecta a la fuente de datos, convierte los datos en primitivos e inicia los primitivos.
La secuencia está compuesta por un. número ilimitado de primitivas. Las primitivas son las estructuras de datos centrales de Storm, son listas que constan de uno o más pares clave-valor.
Los tornillos pueden entenderse como operaciones o funciones en programas de cálculo. Aguas arriba del perno está el flujo de entrada. Una vez que el perno realiza su operación, puede generar uno o más flujos de salida.
Un perno puede suscribirse a múltiples flujos emitidos por boquillas u otros pernos, creando una red compleja de transformaciones de flujos de datos.
Los anteriores son los componentes más básicos de una tormenta, no importa cómo opere la tormenta, los flujos, los chorros y las tormentas son las unidades operativas más básicas.
En primer lugar, debemos aclarar un concepto: todas las instancias de Bolt y spout pertenecen a tareas. Spout genera flujos de datos y los lanza. Bolt consume flujos de datos, realiza cálculos y aterriza o reinicia. Su existencia y operación Todos los procesos requieren recursos, y un grupo de tormentas es un grupo que proporciona recursos para ejecutar tormentas. Storm cluster es un clúster que proporciona recursos. Todo lo que tenemos que hacer es asignar razonablemente instancias de spout/bolt a los recursos informáticos proporcionados por el cluster de tormenta, para que se pueda ejecutar spout/bolt.
Un trabajador es un proceso JVM y se asigna una topología para ejecutarse en uno o más trabajadores.
Un ejecutor es un subproceso de Java en un trabajador que se utiliza para ejecutar instancias de perno/pico. El próximo artículo sobre cómo proporcionar las capacidades informáticas paralelas de Storm cubrirá la configuración de trabajadores y ejecutores.
En la tormenta, los trabajadores son creados y monitoreados por el proceso supervisor. El cúmulo de tormentas sigue un modelo maestro-esclavo, donde nimbus es el nodo maestro y el supervisor es el nodo esclavo. Un grupo de tormentas consta de un único nodo maestro (que en realidad tiene un único punto de contacto) y varios nodos trabajadores (supervisores), y utiliza un cuidador del zoológico para coordinar la información de estado en el grupo, como asignaciones de tareas, estado de los trabajadores y métricas de topología. para los supervisores.
Puedes configurar cuántos trabajadores pueden ejecutarse en un supervisor.
Un trabajador representa un espacio.
La principal responsabilidad del demonio nimbus es administrar, coordinar y monitorear la topología que se ejecuta en el clúster, incluida la publicación de topología, la asignación de tareas y la reasignación de tareas cuando falla el procesamiento de eventos.
El demonio de monitoreo espera a que nimbus asigne tareas y luego genera y monitorea el trabajador que ejecuta las tareas.
Después de comprender el modo de clúster, Storm tiene un concepto general de distribución. Usemos un ejemplo elaborado por el autor para comprender cómo liberar recursos informáticos al clúster de Storm.
El autor definió un pico y dos pernos, y el proceso de operación es el siguiente:
StreamMaking es una instancia de pico, que generará continuamente números aleatorios (5 ~ 30), y Step1Bolt filtrará Los números aleatorios inferiores a 15 se eliminan (filtrado), los números aleatorios superiores a 15 se multiplican por 16 (cálculo) y los resultados se envían al revés. step2Bolt se suscribe a los datos enviados por step1Bolt, recibe los datos e imprime el resultado. El proceso termina.
Al definir la instancia de spout/bolt, el autor configuró el número de ejecuciones paralelas de spout y Bolt. Entre ellos
streamMaking:4 ?Step1Bolt:2 ?Step2Bolt 1
De esta manera, después de un lanzamiento exitoso, Storm asignará suficientes recursos informáticos para ejecutar/atornillar de acuerdo con mi configuración. .
Publicar:
Al publicar, el pico y el perno se publicarán en nimbus como un frasco. Después de la asignación, el pico y el perno definidos internamente se distribuirán por nimbus al proceso de trabajo como. componentes.
Los trabajadores son creados por supervisores y el proceso de trabajador creado es un proceso independiente del supervisor. Puede configurar la cantidad de trabajadores que el programa de monitoreo puede crear modificando storm.yaml en el directorio de instalación de Storm.
La tarea es la unidad de ejecución más pequeña. La instancia de Spout/bolt especifica cuántas tareas y cuántos ejecutores comenzar en la definición, es decir, antes de publicar la topología, se define el número total de tareas y los recursos necesarios para ejecutar el número total de tareas.
Como se muestra en la siguiente figura: el lado izquierdo de nimbus representa el volumen de la tarea informática y la configuración informática requerida.
El lado derecho de nimbus representa los recursos informáticos
nimbus asignará razonablemente tareas informáticas en función de la información de los recursos informáticos.
Después de una publicación exitosa, puede ver el estado de ejecución de la topología publicada y el estado de ejecución distribuida de cada componente a través de la función de interfaz de usuario propia de Storm.
La imagen de monitoreo muestra claramente la topología implementada actualmente, los hosts a los que se asignan los recursos informáticos para cada componente en la topología, la cantidad de primitivas que inicia cada componente, la cantidad de primitivas que se reciben y la ejecutores que ejecutan en paralelo cantidad.
Este artículo presenta primero los elementos básicos y los conceptos básicos de Storm, luego presenta la información de configuración clave de Storm, cómo mejorar las capacidades informáticas concurrentes, el concepto de Windows y otras funciones avanzadas, y finalmente presenta el código fuente. Análisis y comparación relacionada de otros middleware informáticos en tiempo real.