Sistema informàtic distribuït Apache Storm 2.0 disponible

Va veure la llum llançament important d'un sistema de processament d'esdeveniments distribuït Apache Storm 2.0, destacat per la seva transició a una nova arquitectura implementada en Java, en lloc del llenguatge Clojure utilitzat anteriorment.

El projecte permet organitzar la tramitació garantida de diversos esdeveniments en temps real. Per exemple, Storm es pot utilitzar per analitzar fluxos de dades en temps real, executar tasques d'aprenentatge automàtic, organitzar la informàtica contínua, implementar RPC, ETL, etc. El sistema admet la agrupació en clúster, la creació de configuracions tolerants a errors, el mode de processament de dades garantit i té un alt rendiment, suficient per processar més d'un milió de sol·licituds per segon en un node de clúster.

S'admet la integració amb diversos sistemes de processament de cues i tecnologies de bases de dades. L'arquitectura Storm implica rebre i processar fluxos de dades no estructurats i actualitzats constantment mitjançant processadors complexos arbitraris amb la capacitat de dividir entre diferents etapes de càlculs. El projecte es va lliurar a la comunitat Apache després que Twitter va adquirir BackType, l'empresa que va desenvolupar originalment el marc. A la pràctica, Storm es va utilitzar a BackType per analitzar el reflex dels esdeveniments en els microblogs, comparant sobre la marxa nous tuits i els enllaços utilitzats en ells (per exemple, es va valorar com els enllaços externs o els anuncis publicats a Twitter eren retransmesos per altres participants). ).

La funcionalitat de Storm es compara amb la plataforma Hadoop, amb la diferència clau que les dades no s'emmagatzemen en un magatzem, sinó que s'ingereixen externament i es processen en temps real. Storm no té una capa d'emmagatzematge integrada i la consulta analítica comença a aplicar-se a les dades entrants fins que es cancel·len (mentre que Hadoop utilitza treballs de MapReduce de temps finit, Storm utilitza la idea d'executar contínuament "topologies"). L'execució dels controladors es pot distribuir entre diversos servidors: Storm paral·lelitza automàticament el treball amb fils en diferents nodes del clúster.

El sistema es va escriure originalment a Clojure i s'executa dins de la màquina virtual JVM. La Fundació Apache ha llançat una iniciativa per migrar Storm a un nou nucli escrit en Java, els resultats del qual es proposen en el llançament d'Apache Storm 2.0. Tots els components bàsics de la plataforma es reescriuen en Java. S'ha mantingut el suport per als controladors d'escriptura a Clojure, però ara s'ofereix en forma d'enquadernacions. Storm 2.0.0 requereix Java 8. El model de processament multiprocés s'ha redissenyat completament, permetent aconseguir un augment notable del rendiment (per a algunes topologies, els retards es van reduir entre un 50 i un 80%).

Sistema informàtic distribuït Apache Storm 2.0 disponible

La nova versió també ofereix una nova API de Streams escrita que us permet definir controladors mitjançant operacions funcionals d'estil de programació. La nova API s'implementa a sobre de l'API base estàndard i admet la fusió automàtica d'operacions per optimitzar-ne el processament. L'API Windowing per a operacions de finestres ha afegit suport per desar i restaurar l'estat al backend.

Suport per tenir en compte recursos addicionals a l'hora de prendre decisions no limitades
CPU i memòria, com ara la configuració de la xarxa i la GPU. S'han fet un gran nombre de millores per garantir la integració amb la plataforma Kafka. El sistema de control d'accés s'ha ampliat per incloure la possibilitat de crear grups d'administradors i testimonis de delegats. S'han afegit millores relacionades amb el suport SQL i mètriques. Han aparegut noves ordres a la interfície de l'administrador per depurar l'estat del clúster.

Àrees d'aplicació de Storm:

  • Processar fluxos de dades noves o actualitzacions de bases de dades en temps real;
  • Informàtica contínua: Storm pot executar consultes contínues i processar fluxos continus, proporcionant resultats de processament al client en temps real.
  • Trucada de procediment remot distribuït (RPC): Storm es pot utilitzar per proporcionar l'execució paral·lela de consultes que consumeixen molts recursos. Un treball ("topologia") a Storm és una funció distribuïda entre nodes que espera que arribin missatges que s'han de processar. Després de rebre un missatge, la funció el processa en el context local i retorna el resultat. Un exemple d'ús de RPC distribuït seria processar consultes de cerca en paral·lel o realitzar operacions en un gran conjunt de conjunts.

Característiques de la tempesta:

  • Un model de programació senzill que simplifica molt el processament de dades en temps real;
  • Suport per a qualsevol llenguatge de programació. Hi ha mòduls disponibles per a Java, Ruby i Python, l'adaptació per a altres llenguatges és fàcil gràcies a un protocol de comunicació molt senzill que requereix unes 100 línies de codi per suportar;
  • Tolerància a errors: per executar un treball de processament de dades, cal generar un fitxer jar amb codi. Storm distribuirà aquest fitxer jar de manera independent als nodes del clúster, connectarà els controladors associats amb ell i organitzarà la supervisió. Quan finalitzi el treball, el codi es desactivarà automàticament a tots els nodes;
  • Escalabilitat horitzontal. Tots els càlculs es realitzen en mode paral·lel; a mesura que augmenta la càrrega, n'hi ha prou amb connectar nous nodes al clúster;
  • Fiabilitat. Storm garanteix que tots els missatges entrants es processin completament almenys una vegada. El missatge només es processarà una vegada si no hi ha errors en passar per tots els controladors; si sorgeixen problemes, es repetiran els intents de processament sense èxit.
  • Velocitat. El codi de Storm s'escriu pensant en un alt rendiment i utilitza el sistema per a una missatgeria asíncrona ràpida ZeroMQ.

Font: opennet.ru

Afegeix comentari