Procesamiento de flujo distribuido de código abierto
Apache Storm es un marco computacional de procesamiento de flujo distribuido escrito predominantemente en el lenguaje de programación Clojure . Originalmente creado por Nathan Marz [2] y el equipo de BackType, [3] el proyecto se convirtió en código abierto luego de ser adquirido por Twitter. [4] Utiliza "spouts" y "bolts" creados a medida para definir fuentes de información y manipulaciones para permitir el procesamiento distribuido por lotes de datos de flujo. El lanzamiento inicial fue el 17 de septiembre de 2011. [5]
Una aplicación Storm está diseñada como una "topología" en forma de un gráfico acíclico dirigido (DAG) con picos y pernos que actúan como vértices del gráfico. Los bordes del gráfico se denominan flujos y dirigen los datos de un nodo a otro. En conjunto, la topología actúa como una tubería de transformación de datos. A un nivel superficial, la estructura general de la topología es similar a un trabajo de MapReduce , con la principal diferencia de que los datos se procesan en tiempo real en lugar de en lotes individuales. Además, las topologías de Storm se ejecutan indefinidamente hasta que se eliminan, mientras que un DAG de trabajo de MapReduce debe terminar eventualmente. [6]
Storm se convirtió en un proyecto de nivel superior de Apache en septiembre de 2014 [7] y estuvo previamente en incubación desde septiembre de 2013. [8] [9]
Desarrollo
Apache Storm se desarrolla bajo la licencia Apache , lo que lo pone a disposición de la mayoría de las empresas para su uso. [10] Git se utiliza para el control de versiones y Atlassian JIRA para el seguimiento de problemas, bajo el programa Apache Incubator.
Arquitectura de Apache Storm
El clúster Apache Storm incluye los siguientes componentes críticos:
- Nodos: Existen dos tipos de nodos: nodos maestros y nodos de trabajo. Un nodo maestro ejecuta un demonio llamado Nimbus que asigna tareas a las máquinas y monitorea su desempeño. Por otro lado, un nodo de trabajo ejecuta un demonio llamado Supervisor que asigna las tareas a otros nodos de trabajo y los opera según sea necesario. Como Storm no puede monitorear el estado y la salud del clúster, implementa ZooKeeper para resolver este problema que conecta a Nimbus con los Supervisores.
- Componentes: Storm tiene tres componentes críticos: Topología, Stream y Spout. Topología es una red formada por Stream y Spout. Stream es una tubería ilimitada de tuplas y Spout es la fuente de los flujos de datos que convierte los datos en la tupla de flujos y los envía a los bolts para su procesamiento. [12]
Plataformas de pares
Storm es solo uno de las docenas de motores de procesamiento de flujo; para obtener una lista más completa, consulte Procesamiento de flujo . Twitter anunció Heron el 2 de junio de 2015 [13], que es compatible con la API de Storm. Existen otros motores de transmisión de datos comparables, como Spark Streaming y Flink . [14]
Véase también
Referencias
- ^ "Lanzamiento de Apache Storm 2.5.0" . Consultado el 4 de agosto de 2023 .
- ^ Marz, Nathan. "Acerca de Nathan Marz". Nathan Marz . Consultado el 28 de marzo de 2013 .
- ^ "Sitio web de BackType (desaparecido)". BackType . Consultado el 28 de marzo de 2013 .
- ^ "Se avecina una tormenta: más detalles y planes para el lanzamiento". Blog de ingeniería . Twitter Inc . Consultado el 29 de julio de 2015 .
- ^ "Storm Codebase". Github . Consultado el 8 de febrero de 2013 .
- ^ "Tutorial - Componentes de un cluster Storm". Documentación . Apache Storm . Consultado el 29 de julio de 2015 .
- ^ "Apache Storm se gradúa como proyecto de alto nivel".
- ^ "Estado de incubación del proyecto Storm". Apache Software Foundation . Consultado el 29 de octubre de 2013 .
- ^ "Propuesta de tormenta". Apache Software Foundation . Consultado el 29 de octubre de 2013 .
- ^ "Powered By Storm". Documentación . Apache Storm . Consultado el 29 de julio de 2015 .
- ^ "Apache Storm". storm.apache.org . Consultado el 18 de agosto de 2017 .
- ^ "PROCESAMIENTO DE FLUJO DE DATOS Y BIG DATA" (PDF) .
- ^ "Volar más rápido con Twitter Heron". Blog de ingeniería . Twitter Inc. Consultado el 3 de junio de 2015 .
- ^ Chintapalli, Sanket; Dagit, Derek; Evans, Bobby; Farivar, Reza; Graves, Thomas; Holderbaugh, Mark; Liu, Zhuo; Nusbaum, Kyle; Patil, Kishorkumar; Peng, Boyang Jerry; Poulosky, Paul (mayo de 2016). "Evaluación comparativa de motores de computación de transmisión: Storm, Flink y Spark Streaming". Talleres del Simposio Internacional de Procesamiento Distribuido y Paralelo (IPDPSW) del IEEE de 2016. IEEE. págs. 1789–1792. doi :10.1109/IPDPSW.2016.138. ISBN . 978-1-5090-3682-0. Número de identificación del sujeto 2180634.
Enlaces externos
- Página de inicio del proyecto