Apache Storm - Introdução

O que é Apache Storm?

Apache Storm é um sistema de processamento de big data distribuído em tempo real. Storm foi projetado para processar uma grande quantidade de dados em um método tolerante a falhas e escalonável horizontal. É uma estrutura de streaming de dados que possui a capacidade das taxas de ingestão mais altas. Embora Storm não tenha estado, ele gerencia o ambiente distribuído e o estado do cluster por meio do Apache ZooKeeper. É simples e você pode executar todos os tipos de manipulações em dados em tempo real em paralelo.

O Apache Storm continua a ser um líder em análise de dados em tempo real. Storm é fácil de configurar, operar e garante que todas as mensagens serão processadas através da topologia pelo menos uma vez.

Apache Storm vs Hadoop

Basicamente, as estruturas Hadoop e Storm são usadas para analisar big data. Ambos se complementam e diferem em alguns aspectos. O Apache Storm faz todas as operações, exceto a persistência, enquanto o Hadoop é bom em tudo, mas atrasa na computação em tempo real. A tabela a seguir compara os atributos de Storm e Hadoop.

Tempestade Hadoop
Processamento de stream em tempo real Processamento em lote
Sem estado Com estado
Arquitetura Master / Slave com coordenação baseada em ZooKeeper. O nó mestre é chamado denimbus e escravos são supervisors. Arquitetura mestre-escravo com / sem coordenação baseada em ZooKeeper. Nó mestre éjob tracker e o nó escravo é task tracker.
Um processo de streaming do Storm pode acessar dezenas de milhares de mensagens por segundo no cluster. O Hadoop Distributed File System (HDFS) usa a estrutura MapReduce para processar uma grande quantidade de dados que leva minutos ou horas.
A topologia Storm é executada até o desligamento pelo usuário ou até uma falha inesperada irrecuperável. Os trabalhos de MapReduce são executados em uma ordem sequencial e concluídos eventualmente.
Both are distributed and fault-tolerant
Se o nimbus / supervisor morrer, reiniciar o fará continuar de onde parou, portanto, nada será afetado. Se o JobTracker morrer, todos os trabalhos em execução serão perdidos.

Casos de uso do Apache Storm

O Apache Storm é muito famoso pelo processamento de fluxo de big data em tempo real. Por esse motivo, a maioria das empresas está usando Storm como parte integrante de seu sistema. Alguns exemplos notáveis ​​são os seguintes -

Twitter- O Twitter está usando o Apache Storm para sua gama de “produtos de análise de editor”. “Produtos de análise do editor” processam todos os tweets e cliques na plataforma do Twitter. O Apache Storm está profundamente integrado à infraestrutura do Twitter.

NaviSite- NaviSite está usando Storm para o sistema de monitoramento / auditoria de log de eventos. Todos os logs gerados no sistema passarão pelo Storm. Storm irá verificar a mensagem em relação ao conjunto configurado de expressão regular e, se houver uma correspondência, essa mensagem em particular será salva no banco de dados.

Wego- Wego é um mecanismo de metabusca de viagens localizado em Cingapura. Os dados relacionados a viagens vêm de muitas fontes em todo o mundo, em tempos diferentes. Storm ajuda o Wego a pesquisar dados em tempo real, resolve problemas de simultaneidade e encontra a melhor correspondência para o usuário final.

Benefícios do Apache Storm

Aqui está uma lista dos benefícios que o Apache Storm oferece -

  • Storm é um software livre, robusto e amigável. Pode ser utilizado tanto em pequenas empresas quanto em grandes corporações.

  • Storm é tolerante a falhas, flexível, confiável e oferece suporte a qualquer linguagem de programação.

  • Permite o processamento de stream em tempo real.

  • O Storm é incrivelmente rápido porque tem um enorme poder de processamento de dados.

  • O Storm pode manter o desempenho mesmo sob carga crescente, adicionando recursos linearmente. É altamente escalonável.

  • Storm executa atualização de dados e resposta de entrega ponta a ponta em segundos ou minutos, dependendo do problema. Possui latência muito baixa.

  • Storm tem inteligência operacional.

  • Storm fornece processamento de dados garantido, mesmo se qualquer um dos nós conectados no cluster morrer ou mensagens forem perdidas.