Apache Storm un sistema de procesamiento de datos en tiempo real

storm_logo

Apache Storm es un proyecto que permite organizar el procesamiento garantizado de varios eventos en tiempo real. Por ejemplo, Storm puede usarse para analizar flujos de datos en tiempo real, realizar tareas de aprendizaje automático, organizar cálculos continuos, implementar RPC, ETL, etc.

El sistema admite la agrupación en clústeres, la creación de configuraciones tolerantes a fallas, el modo de procesamiento de datos garantizado y tiene un alto rendimiento suficiente para procesar más de un millón de solicitudes por segundo en un nodo de clúster.

Apache Storm la integración con varios sistemas de procesamiento de colas y tecnologías de base de datos.

La arquitectura de Storm implica recibir y procesar flujos de datos no estructurados y constantemente actualizados utilizando controladores complejos arbitrarios con la posibilidad de dividir entre diferentes etapas de cálculo.

Sobre Apache Storm

El proyecto se transfirió a la comunidad de Apache después de la adquisición de Twitter por BackType, la compañía que originalmente desarrolló el marco.

En la práctica, Storm se usó en BackType para analizar la reflexión de los eventos en los microblogs, al comparar nuevos tweets sobre la marcha y los enlaces que se utilizaron en ellos (por ejemplo, fueron evaluados como enlaces externos o los anuncios de Twitter fueron transmitidos por otros participantes).

La funcionalidad de Storm se compara con la plataforma Hadoop, y la diferencia clave es que los datos no se colocan en el repositorio, sino que se reciben desde el exterior y se procesan en tiempo real.

En Storm, no hay una capa de almacenamiento incorporada y la consulta analítica comienza a aplicarse a los datos entrantes hasta que se cancele (si Hadoop usa el trabajo MapReduce que ocupa un tiempo finito, entonces Storm utiliza la idea de ejecutar “topologías” continuamente.

La ejecución de los manejadores se puede distribuir a varios servidores: la Storm paraleliza automáticamente el trabajo con subprocesos en diferentes nodos del clúster.

Principales casos de uso que se le pueden dar a Apache Storm

Procesamiento de flujos de datos nuevos o actualizaciones de bases de datos en tiempo real
Cálculos continuos: Storm puede realizar solicitudes continuas y procesar flujos continuos, transfiriendo los resultados del procesamiento al cliente en tiempo real.

Llamada a procedimiento remoto distribuido (RPC): se puede usar una tormenta para proporcionar concurrencia en la ejecución de consultas de uso intensivo de recursos.

Una tarea (“topología”) en Storm es una función distribuida entre nodos que está esperando que se procesen los mensajes entrantes.

Después de recibir el mensaje, la función lo procesa en un contexto local y devuelve el resultado. Un ejemplo de uso de RPC distribuido podría ser el procesamiento paralelo de consultas de búsqueda o realizar operaciones en un conjunto grande de conjuntos.

Principales novedades de Apache Storm 2.0

La Fundación Apache lanzó iniciativas para transferir Storm a un nuevo kernel escrito en Java, cuyos resultados se proponen en la versión Apache Storm 2.0.

Todos los componentes básicos de la plataforma se reescriben en Java. Se conserva el soporte para escribir manejadores en Clojure, pero ahora se ofrece en forma de enlaces. Se requiere Java 8 para que funcione Storm 2.0.0.

El modelo de procesamiento multiproceso ha sido completamente rediseñado, lo que ha resultado en un notable aumento del rendimiento (para algunas topologías, las latencias se han reducido en un 50-80%).

En la nueva versión se propuso un nuevo API Streams tipificado, que permite configurar manejadores utilizando operaciones en el estilo de programación funcional.

La nueva API se implementa sobre la base de la API regular y admite la fusión automática de operaciones para optimizar su procesamiento. La API de Windowing para operaciones de ventana agrega soporte para guardar y restaurar el estado en el backend.

Por otro lado el controlador para iniciar recursos adicionales en cuenta cuando se toman decisiones que no se limitan a la CPU y la memoria, como los parámetros de red y GPU, se ha agregado al programador de inicio.

Una gran cantidad de mejoras relacionadas con asegurar la integración con la plataforma Kafka.
Se ha expandido el sistema de control de acceso, en el que ha surgido la oportunidad de crear grupos de administradores y delegación de token.

Se agregaron mejoras relacionadas con el soporte para SQL y métricas. La interfaz del administrador tiene nuevos comandos para depurar el estado del clúster.


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.