O sistema de computação distribuída Apache Storm 2.0 está disponível

Viu a luz um lançamento significativo do sistema de processamento de eventos distribuídos Apache Storm 2.0, destacando-se pela transição para uma nova arquitetura implementada na linguagem Java, em vez da linguagem Clojure anteriormente utilizada.

O projeto permite a organização de processamento garantido de diversos eventos em tempo real. Por exemplo, o Storm pode ser utilizado para analisar fluxos de dados em tempo real, executar tarefas de aprendizado de máquina, organizar cálculos contínuos, implementar RPC, ETL, etc. O sistema suporta a criação de clusters, configuração de alta disponibilidade, modo de processamento garantido de dados e possui um desempenho elevado, suficiente para processar mais de um milhão de solicitações por segundo em um único nó do cluster.

Suporta integração com diversos sistemas de processamento de filas e tecnologias de bancos de dados. A arquitetura do Storm prevê a recepção e processamento de fluxos de dados não estruturados e constantemente atualizados, utilizando manipuladores complexos arbitrários com a possibilidade de particionamento entre diferentes estágios de computação. O projeto foi transferido para a comunidade Apache após a aquisição da BackType pelo Twitter, que originalmente desenvolveu o framework. Na prática, o Storm foi utilizado na BackType para analisar a reflexão de eventos em microblogs, por meio da correspondência em tempo real de novos tweets e os links utilizados neles (por exemplo, realizava-se a avaliação de como links externos ou anúncios publicados no Twitter eram retransmitidos por outros participantes).

A funcionalidade do Storm é comparada à plataforma Hadoop, sendo que a principal diferença é que os dados não estão armazenados em um repositório, mas chegam de fora e são processados em tempo real. No Storm, não há uma camada embutida para organização de armazenamento, e a consulta analítica começa a ser aplicada aos dados recebidos até que seja cancelada (enquanto no Hadoop são utilizados trabalhos de MapReduce que consomem tempo finito, no Storm aplica-se a ideia de ‘topologias’ que são continuamente executadas). A execução dos manipuladores pode ser distribuída em vários servidores — o Storm automaticamente paraleliza o trabalho com fluxos em diferentes nós do cluster.

Inicialmente, o sistema foi escrito na linguagem Clojure e é executado dentro da máquina virtual JVM. No Apache, foi lançada uma iniciativa para portar o Storm para um novo núcleo escrito em Java, cujos resultados foram apresentados na versão Apache Storm 2.0. Todos os componentes base da plataforma foram reescritos em Java. O suporte para escrever manipuladores em Clojure foi mantido, mas agora é oferecido na forma de bindings. Para rodar o Storm 2.0.0, é necessário ter o Java 8. O modelo de processamento multithread foi totalmente reestruturado, permitindo alcançar um aumento significativo de desempenho (para algumas topologias, as latências foram reduzidas em 50-80%).

O sistema de computação distribuída Apache Storm 2.0 está disponível

Na nova versão, também foi introduzido um novo API tipado de Streams, que permite definir manipuladores utilizando operações no estilo da programação funcional. A nova API é implementada sobre a API base padrão e suporta a fusão automática de operações para otimizar seu processamento. Na API Windowing, para operações de janelamento, foi adicionado suporte para salvar e restaurar o estado no backend.

No planejador de execução de manipuladores, foi adicionada a capacidade de contabilizar recursos adicionais na tomada de decisões, não se limitando
à CPU e memória, mas incluindo parâmetros de rede e GPU. Foram feitas inúmeras melhorias para garantir a integração com a plataforma Kafka. O sistema de controle de acesso foi expandido, permitindo a criação de grupos de administradores e delegação de tokens. Melhorias relacionadas ao suporte a SQL e métricas foram adicionadas. No painel de administração, novos comandos para depurar o estado do cluster foram implementados.

Áreas de aplicação do Storm:

  • Processamento de streams de novos dados ou atualizações de BD em tempo real;
  • Cálculos contínuos: O Storm pode executar consultas contínuas e processar streams contínuos, enviando os resultados do processamento ao cliente em tempo real.
  • Chamada de Procedimento Remoto Distribuído (RPC): O Storm pode ser utilizado para garantir a paralelização da execução de requisições que demandam muitos recursos. Uma tarefa ("topologia") no Storm representa uma função distribuída entre nós, que aguarda a chegada de mensagens a serem processadas. Após receber uma mensagem, a função a processa em um contexto local e retorna o resultado. Um exemplo de utilização de RPC distribuído pode ser o processamento paralelo de consultas de pesquisa ou a execução de operações sobre um grande conjunto de conjuntos.

Características do Storm:

  • Modelo de programação simples, que simplifica significativamente o processamento de dados em tempo real;
  • Suporte a quaisquer linguagens de programação. Existem módulos para as linguagens Java, Ruby e Python; a adaptação para outras linguagens não é difícil, graças a um protocolo de comunicação muito simples, cuja implementação requer cerca de 100 linhas de código;
  • Tolerância a Falhas: Para executar uma tarefa de processamento de dados, é necessário criar um arquivo jar com o código. O Storm distribuirá automaticamente este arquivo jar entre os nós do cluster, conectará os manipuladores relacionados e organizará a monitoração. Ao finalizar a tarefa, o código será automaticamente desconectado em todos os nós;
  • Escalabilidade Horizontal. Todos os cálculos são realizados em modo paralelo; com o aumento da carga, basta conectar novos nós ao cluster;
  • Confiabilidade. O Storm garante que cada mensagem recebida será completamente processada pelo menos uma vez. A mensagem será processada uma única vez se não houver erros durante a passagem de todos os manipuladores; se ocorrerem problemas, as tentativas de processamento malsucedidas serão reexaminadas.
  • Rapidez. O código do Storm foi escrito com foco em alta performance e utiliza para a troca rápida de mensagens um sistema ZeroMQ.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster