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.