Apache Storm es un marco de cálculo de procesamiento de flujo distribuido escrito predominantemente en el lenguaje de programación Clojure . Originalmente creado por Nathan Marz [1] y el equipo de BackType, [2] el proyecto fue de código abierto después de ser adquirido por Twitter. [3] Utiliza "picos" y "pernos" creados a medida para definir fuentes de información y manipulaciones para permitir el procesamiento distribuido por lotes de datos de transmisión. La liberación inicial fue el 17 de septiembre de 2011. [4]
Desarrollador (es) | Backtype, Twitter |
---|---|
Lanzamiento estable | 2.2.0 / 30 de junio de 2020 |
Repositorio | Repositorio de tormentas |
Escrito en | Clojure y Java |
Sistema operativo | Multiplataforma |
Tipo | Procesamiento de flujo distribuido |
Licencia | Licencia Apache 2.0 |
Sitio web | tormenta |
Una aplicación Storm está diseñada como una "topología" en la 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 corrientes y dirigen datos de un nodo a otro. Juntos, la topología actúa como una canalización de transformación de datos. A un nivel superficial, la estructura de topología general 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. [5]
Storm se convirtió en un proyecto de nivel superior de Apache en septiembre de 2014 [6] y anteriormente estaba en incubación desde septiembre de 2013. [7] [8]
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. [9] Git se utiliza para el control de versiones y Atlassian JIRA para el seguimiento de problemas, bajo el programa Apache Incubator.
Versión | Fecha de lanzamiento |
---|---|
2.2.0 | 30 de junio de 2020 |
2.1.0 | 6 de septiembre de 2019 |
1.2.3 | 18 de julio de 2019 |
2.0.0 | 30 de mayo de 2019 |
1.1.4 | 8 de enero de 2019 |
1.2.2 | 4 de junio de 2018 |
1.1.3 | |
1.0.7 | 3 de mayo de 2018 |
1.2.1 | 19 de febrero de 2018 |
1.2.0 | 15 de febrero de 2018 |
1.1.2 | |
1.0.6 | 14 de febrero de 2018 |
1.0.5 | 15 de septiembre de 2017 |
1.1.1 | 1 de agosto de 2017 |
1.0.4 | 28 de julio de 2017 |
1.1.0 | 29 de marzo de 2017 |
1.0.3 | 14 de febrero de 2017 |
0.10.2 | 14 de septiembre de 2016 |
0.9.7 | 7 de septiembre de 2016 |
1.0.2 | 10 de agosto de 2016 |
1.0.1 | 6 de mayo de 2016 |
0.10.1 | 5 de mayo de 2016 |
1.0.0 | 12 de abril de 2016 |
0.10.0 | 5 de noviembre de 2015 |
0.9.6 | |
0.9.5 | 4 de junio de 2015 |
0.9.4 | 25 de marzo de 2015 |
0.9.3 | 25 de noviembre de 2014 |
0.9.2 | 25 de junio de 2014 |
0.9.1 | 10 de febrero de 2014 |
Versión histórica (no Apache) | Fecha de lanzamiento |
0.9.0 | 8 de diciembre de 2013 |
0.8.2 | 11 de enero de 2013 |
0.8.1 | 6 de septiembre de 2012 |
0.8.0 | 2 de agosto de 2012 |
0.7.0 | 28 de febrero de 2012 |
0.6.0 | 15 de diciembre de 2011 |
0.5.0 | 19 de septiembre de 2011 |
Arquitectura Apache Storm
El clúster de Apache Storm comprende los siguientes componentes críticos:
- Nodos: hay dos tipos de nodos: nodos maestros y nodos de trabajo. Un nodo maestro ejecuta un demonio Nimbus que asigna tareas a las máquinas y monitorea su desempeño. Por otro lado, un nodo trabajador ejecuta el demonio llamado Supervisor que asigna las tareas a otros nodos trabajadores y las opera según las necesidades. 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. La 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 pernos para ser procesados. [ cita requerida ]
Plataformas de pares
Storm no es más que uno de las docenas de motores de procesamiento de secuencias; para obtener una lista más completa, consulte Procesamiento de secuencias . Twitter anunció Heron el 2 de junio de 2015 [11] que es API compatible con Storm. Hay otros motores de transmisión de datos comparables, como Spark Streaming y Flink . [12]
Ver también
Referencias
- ^ Marz, Nathan. "Acerca de Nathan Marz" . Nathan Marz . Consultado el 28 de marzo de 2013 .
- ^ "Sitio web BackType (extinto)" . BackType . Consultado el 28 de marzo de 2013 .
- ^ "Se acerca una tormenta: más detalles y planes de 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 clúster Storm" . Documentación . Apache Storm . Consultado el 29 de julio de 2015 .
- ^ "Apache Storm se gradúa en un proyecto de nivel superior" .
- ^ "Estado de incubación del proyecto de tormenta" . Fundación de software Apache . Consultado el 29 de octubre de 2013 .
- ^ "Propuesta de tormenta" . Fundación de software Apache . Consultado el 29 de octubre de 2013 .
- ^ "Impulsado por tormenta" . Documentación . Apache Storm . Consultado el 29 de julio de 2015 .
- ^ "Tormenta Apache" . storm.apache.org . Consultado el 18 de agosto de 2017 .
- ^ "Volando 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). "Benchmarking Streaming Computation Engines: Storm, Flink y Spark Streaming". Talleres del Simposio Internacional de Procesamiento Distribuido y Paralelo del IEEE 2016 (IPDPSW) . IEEE. págs. 1789-1792. doi : 10.1109 / IPDPSW.2016.138 . ISBN 978-1-5090-3682-0. S2CID 2180634 .
enlaces externos
- Página de inicio del proyecto