Dispoñible o sistema de computación distribuído Apache Storm 2.0

Viu a luz liberación significativa dun sistema de procesamento de eventos distribuído Apache Storm 2.0, destacando pola súa transición a unha nova arquitectura implementada en Java, en lugar da linguaxe Clojure usada anteriormente.

O proxecto permite organizar o procesamento garantido de diversos eventos en tempo real. Por exemplo, Storm pódese usar para analizar fluxos de datos en tempo real, executar tarefas de aprendizaxe automática, organizar a computación continua, implementar RPC, ETL, etc. O sistema admite a agrupación en clúster, a creación de configuracións tolerantes a fallos, o modo de procesamento de datos garantido e ten un alto rendemento, suficiente para procesar máis dun millón de solicitudes por segundo nun nodo do clúster.

Admítese a integración con varios sistemas de procesamento de filas e tecnoloxías de bases de datos. A arquitectura Storm implica recibir e procesar fluxos de datos non estruturados e constantemente actualizados utilizando procesadores complexos arbitrarios con capacidade de partición entre diferentes etapas de cálculos. O proxecto foi entregado á comunidade Apache despois de que Twitter adquirise BackType, a empresa que desenvolveu orixinalmente o framework. Na práctica, Storm utilizouse en BackType para analizar o reflexo dos acontecementos nos microblogs, comparando sobre a marcha novos chíos e as ligazóns empregadas neles (por exemplo, avaliouse como se redifundían enlaces externos ou anuncios publicados en Twitter por outros participantes). ).

A funcionalidade de Storm compárase coa plataforma Hadoop, coa diferenza fundamental en que os datos non se almacenan nun almacén, senón que se inxírense externamente e se procesan en tempo real. Storm non ten unha capa de almacenamento integrada e a consulta analítica comeza a aplicarse aos datos entrantes ata que se cancelan (mentres Hadoop usa traballos de MapReduce de tempo finito, Storm usa a idea de executar "topoloxías") continuamente. A execución dos controladores pódese distribuír en varios servidores: Storm paraleliza automaticamente o traballo con fíos en diferentes nodos do clúster.

O sistema foi escrito orixinalmente en Clojure e execútase dentro da máquina virtual JVM. A Fundación Apache lanzou unha iniciativa para migrar Storm a un novo núcleo escrito en Java, cuxos resultados se propoñen no lanzamento de Apache Storm 2.0. Todos os compoñentes básicos da plataforma están reescritos en Java. Mantívose o soporte para os controladores de escritura en Clojure, pero agora ofrécese en forma de enlaces. Storm 2.0.0 require Java 8. O modelo de procesamento multiproceso foi completamente redeseñado, permitindo acadar un aumento notable no rendemento (para algunhas topoloxías, os atrasos reducíronse nun 50-80%).

Dispoñible o sistema de computación distribuído Apache Storm 2.0

A nova versión tamén ofrece unha nova API de fluxos que che permite definir controladores mediante operacións de estilo de programación funcionais. A nova API está implementada enriba da API base estándar e admite a fusión automática de operacións para optimizar o seu procesamento. A API de Windows para operacións de ventás engadiu compatibilidade para gardar e restaurar o estado no backend.

Apoio para ter en conta recursos adicionais á hora de tomar decisións non limitadas
CPU e memoria, como a configuración de rede e GPU. Realizáronse un gran número de melloras para garantir a integración coa plataforma Kafka. O sistema de control de acceso ampliouse para incluír a posibilidade de crear grupos de administradores e tokens de delegados. Engadíronse melloras relacionadas co soporte de SQL e métricas. Apareceron novos comandos na interface do administrador para depurar o estado do clúster.

Ámbitos de aplicación de Storm:

  • Procesar fluxos de novos datos ou actualizacións de bases de datos en tempo real;
  • Computación continua: Storm pode executar consultas continuas e procesar fluxos continuos, entregando resultados de procesamento ao cliente en tempo real.
  • Chamada de procedemento remoto distribuído (RPC): Storm pódese usar para proporcionar execución paralela de consultas con uso intensivo de recursos. Un traballo ("topoloxía") en Storm é unha función distribuída en nós que agarda a que cheguen as mensaxes que deben ser procesadas. Despois de recibir unha mensaxe, a función procesa no contexto local e devolve o resultado. Un exemplo de uso de RPC distribuído sería procesar consultas de busca en paralelo ou realizar operacións nun gran conxunto de conxuntos.

Características da tormenta:

  • Un modelo de programación sinxelo que simplifica moito o procesamento de datos en tempo real;
  • Soporte para calquera linguaxe de programación. Existen módulos para Java, Ruby e Python, a adaptación para outras linguaxes non é difícil debido a un protocolo de comunicación moi sinxelo, que require unhas 100 liñas de código para soportar;
  • Tolerancia a fallos: para executar un traballo de procesamento de datos, cómpre xerar un ficheiro jar con código. Storm distribuirá este ficheiro jar de forma independente polos nodos do clúster, conectará os controladores asociados a el e organizará o seguimento. Cando se complete o traballo, o código desactivarase automaticamente en todos os nós;
  • Escalabilidade horizontal. Todos os cálculos realízanse en modo paralelo; a medida que aumenta a carga, basta con conectar novos nodos ao clúster;
  • Fiabilidade. Storm garante que cada mensaxe entrante se procese completamente polo menos unha vez. A mensaxe procesarase unha vez só se non hai erros ao pasar por todos os controladores; se aparecen problemas, repetiranse os intentos de procesamento infrutuosos.
  • Velocidade. O código de Storm está escrito pensando nun alto rendemento e usa o sistema para a mensaxería asíncrona rápida ZeroMQ.

Fonte: opennet.ru

Engadir un comentario