Disponible el sistema informático distribuido Apache Storm 2.0

vio la luz lanzamiento significativo de un sistema de procesamiento de eventos distribuido Tormenta Apache 2.0, destaca por su transición a una nueva arquitectura implementada en Java, en lugar del lenguaje Clojure utilizado anteriormente.

El proyecto le permite organizar el procesamiento garantizado de varios eventos en tiempo real. Por ejemplo, Storm se puede utilizar para analizar flujos de datos en tiempo real, ejecutar tareas de aprendizaje automático, organizar la computación continua, implementar RPC, ETL, etc. El sistema admite agrupación en clústeres, creación de configuraciones tolerantes a fallos, 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 del clúster.

Se admite la integración con varios sistemas de procesamiento de colas y tecnologías de bases de datos. La arquitectura Storm implica recibir y procesar flujos de datos no estructurados y constantemente actualizados utilizando procesadores complejos arbitrarios con la capacidad de dividir entre diferentes etapas de cálculo. El proyecto fue entregado a la comunidad Apache después de que Twitter adquiriera BackType, la empresa que desarrolló originalmente el marco. En la práctica, Storm se utilizó en BackType para analizar el reflejo de eventos en microblogs, comparando sobre la marcha nuevos tweets y los enlaces utilizados en ellos (por ejemplo, se evaluó cómo los enlaces externos o los anuncios publicados en Twitter fueron retransmitidos por otros participantes). ).

La funcionalidad de Storm se compara con la plataforma Hadoop, con la diferencia clave de que los datos no se almacenan en un almacén, sino que se ingieren externamente y se procesan en tiempo real. Storm no tiene una capa de almacenamiento incorporada y la consulta analítica comienza a aplicarse a los datos entrantes hasta que se cancela (mientras Hadoop usa trabajos MapReduce de tiempo finito, Storm usa la idea de ejecutar “topologías” continuamente). La ejecución de los controladores se puede distribuir entre varios servidores: Storm paraleliza automáticamente el trabajo con subprocesos en diferentes nodos del clúster.

El sistema fue escrito originalmente en Clojure y se ejecuta dentro de la máquina virtual JVM. La Fundación Apache ha lanzado una iniciativa para migrar Storm a un nuevo kernel escrito en Java, cuyos resultados se proponen en el lanzamiento de Apache Storm 2.0. Todos los componentes básicos de la plataforma están reescritos en Java. Se ha mantenido el soporte para controladores de escritura en Clojure, pero ahora se ofrece en forma de enlaces. Storm 2.0.0 requiere Java 8. El modelo de procesamiento multiproceso ha sido completamente rediseñado, lo que permite para lograr un aumento notable en el rendimiento (para algunas topologías, los retrasos se redujeron entre un 50 y un 80%).

Disponible el sistema informático distribuido Apache Storm 2.0

La nueva versión también ofrece una nueva API Streams escrita que le permite definir controladores utilizando operaciones de estilo de programación funcional. La nueva API se implementa sobre la API base estándar y admite la combinación automática de operaciones para optimizar su procesamiento. La API de Windows para operaciones de ventanas ha agregado soporte para guardar y restaurar el estado en el backend.

Apoyo para tener en cuenta recursos adicionales a la hora de tomar decisiones no limitadas a
CPU y memoria, como configuraciones de red y GPU. Se han realizado una gran cantidad de mejoras para garantizar la integración con la plataforma. Kafka. El sistema de control de acceso se ha ampliado para incluir la capacidad de crear grupos de administradores y delegar tokens. Se agregaron mejoras relacionadas con SQL y compatibilidad con métricas. Han aparecido nuevos comandos en la interfaz del administrador para depurar el estado del clúster.

Áreas de aplicación de Storm:

  • Procesar flujos de nuevos datos o actualizaciones de bases de datos en tiempo real;
  • Computación continua: Storm puede ejecutar consultas continuas y procesar flujos continuos, entregando resultados de procesamiento al cliente en tiempo real.
  • Llamada a procedimiento remoto distribuido (RPC): Storm se puede utilizar para proporcionar ejecución paralela de consultas que consumen muchos recursos. Un trabajo (“topología”) en Storm es una función distribuida entre nodos que espera a que lleguen mensajes que deben procesarse. Después de recibir un mensaje, la función lo procesa en el contexto local y devuelve el resultado. Un ejemplo de uso de RPC distribuido sería procesar consultas de búsqueda en paralelo o realizar operaciones en un gran conjunto de conjuntos.

Características de la tormenta:

  • Un modelo de programación simple que simplifica enormemente el procesamiento de datos en tiempo real;
  • Soporte para cualquier lenguaje de programación. Los módulos están disponibles para Java, Ruby y Python, la adaptación a otros lenguajes es fácil gracias a un protocolo de comunicación muy simple que requiere alrededor de 100 líneas de código para ser compatible;
  • Tolerancia a fallos: para ejecutar un trabajo de procesamiento de datos, es necesario generar un archivo jar con código. Storm distribuirá de forma independiente este archivo jar entre los nodos del clúster, conectará los controladores asociados con él y organizará el monitoreo. Cuando se complete el trabajo, el código se desactivará automáticamente en todos los nodos;
  • Escalabilidad horizontal. Todos los cálculos se realizan en modo paralelo, a medida que aumenta la carga, basta con conectar nuevos nodos al clúster;
  • Fiabilidad. Storm garantiza que cada mensaje entrante se procese completamente al menos una vez. El mensaje se procesará una vez solo si no hay errores al pasar por todos los controladores; si surgen problemas, se repetirán los intentos de procesamiento fallidos.
  • Velocidad. El código de Storm está escrito teniendo en cuenta el alto rendimiento y utiliza el sistema para mensajería asincrónica rápida. CeroMQ.

Fuente: opennet.ru

Añadir un comentario