Apache Storm - Introducción
¿Qué es Apache Storm?
Apache Storm es un sistema de procesamiento de big data distribuido en tiempo real. Storm está diseñado para procesar una gran cantidad de datos en un método escalable horizontal y tolerante a fallas. Es un marco de transmisión de datos que tiene la capacidad de las tasas de ingestión más altas. Aunque Storm no tiene estado, administra el entorno distribuido y el estado del clúster a través de Apache ZooKeeper. Es simple y puede ejecutar todo tipo de manipulaciones en datos en tiempo real en paralelo.
Apache Storm continúa siendo líder en análisis de datos en tiempo real. Storm es fácil de configurar, operar y garantiza que cada mensaje se procesará a través de la topología al menos una vez.
Apache Storm contra Hadoop
Básicamente, los frameworks Hadoop y Storm se utilizan para analizar big data. Ambos se complementan y difieren en algunos aspectos. Apache Storm realiza todas las operaciones excepto la persistencia, mientras que Hadoop es bueno en todo, pero se retrasa en el cálculo en tiempo real. La siguiente tabla compara los atributos de Storm y Hadoop.
Tormenta | Hadoop |
---|---|
Procesamiento de secuencias en tiempo real | Procesamiento por lotes |
Apátrida | Con estado |
Arquitectura maestro / esclavo con coordinación basada en ZooKeeper. El nodo maestro se llama comonimbus y los esclavos son supervisors. | Arquitectura maestro-esclavo con / sin coordinación basada en ZooKeeper. El nodo maestro esjob tracker y el nodo esclavo es task tracker. |
Un proceso de transmisión de Storm puede acceder a decenas de miles de mensajes por segundo en el clúster. | El sistema de archivos distribuido de Hadoop (HDFS) utiliza el marco MapReduce para procesar una gran cantidad de datos que lleva minutos u horas. |
La topología de tormenta se ejecuta hasta que el usuario la apaga o hasta que se produce una falla irrecuperable inesperada. | Los trabajos de MapReduce se ejecutan en orden secuencial y se completan eventualmente. |
Both are distributed and fault-tolerant | |
Si nimbus / supervisor muere, el reinicio hace que continúe desde donde se detuvo, por lo que nada se ve afectado. | Si JobTracker muere, todos los trabajos en ejecución se pierden. |
Casos de uso de Apache Storm
Apache Storm es muy famoso por el procesamiento de flujos de big data en tiempo real. Por esta razón, la mayoría de las empresas utilizan Storm como parte integral de su sistema. Algunos ejemplos notables son los siguientes:
Twitter- Twitter está utilizando Apache Storm para su gama de "productos de Publisher Analytics". Los “Productos de análisis de editores” procesan todos y cada uno de los tweets y clics en la plataforma de Twitter. Apache Storm está profundamente integrado con la infraestructura de Twitter.
NaviSite- NaviSite utiliza Storm para el sistema de supervisión / auditoría de registros de eventos. Todos los registros generados en el sistema pasarán por Storm. Storm comparará el mensaje con el conjunto configurado de expresiones regulares y, si hay una coincidencia, ese mensaje en particular se guardará en la base de datos.
Wego- Wego es un metabuscador de viajes ubicado en Singapur. Los datos relacionados con los viajes provienen de muchas fuentes en todo el mundo con diferentes tiempos. Storm ayuda a Wego a buscar datos en tiempo real, resuelve problemas de concurrencia y encuentra la mejor coincidencia para el usuario final.
Beneficios de Apache Storm
Aquí hay una lista de los beneficios que ofrece Apache Storm:
Storm es de código abierto, robusto y fácil de usar. Podría utilizarse tanto en pequeñas empresas como en grandes corporaciones.
Storm es tolerante a fallas, flexible, confiable y admite cualquier lenguaje de programación.
Permite el procesamiento de transmisiones en tiempo real.
Storm es increíblemente rápido porque tiene un enorme poder de procesamiento de datos.
Storm puede mantener el rendimiento incluso bajo una carga creciente al agregar recursos de forma lineal. Es altamente escalable.
Storm realiza la actualización de datos y la respuesta de entrega de un extremo a otro en segundos o minutos, según el problema. Tiene una latencia muy baja.
Storm tiene inteligencia operativa.
Storm proporciona un procesamiento de datos garantizado incluso si alguno de los nodos conectados en el clúster muere o se pierden mensajes.