Fagulha Apache vs Tempestade Apache

Fagulha Apache vs Tempestade Apache

A necessidade de transmissão de dados em tempo real está crescendo exponencialmente devido ao aumento de dados em tempo real. Com as tecnologias de streaming liderando o mundo dos Grandes Dados, pode ser difícil para os usuários escolher a plataforma apropriada de streaming em tempo real. Duas das tecnologias em tempo real mais populares que podem ser consideradas para optar são Apache Spark e Apache Storm.

Uma das principais diferenças entre as estruturas Spark e Storm é que Spark executa cálculos Data-Parallel, enquanto Storm ocupa cálculos Tarefa-Parallel

Apache Spark

Apache Spark é uma estrutura tecnológica de computação em cluster, de uso geral e rápida iluminação, usada para computação rápida em processamento de dados em larga escala. Ele pode gerenciar análises em lote e em tempo real e cargas de trabalho de processamento de dados.

Apache Storm

Apache Storm é um sistema de computação de código aberto, tolerante a falhas escalável e de processamento de fluxo em tempo real. É uma estrutura para processamento de dados distribuídos em tempo real, que se concentra no processamento de streaming ou processamento de eventos. Ele pode ser usado com qualquer linguagem de programação e pode ser integrado usando qualquer fila ou tecnologia de banco de dados.

Diferenças entre Spark e Storm

  • Modelo de processamento: Apache spark fornece processamento em lote enquanto tempestade fornece processamento em micro lotes
  • Linguagem de programação: Apache spark Suporta linguagens menores como Java, Scala enquanto Storm por outro lado Suporta múltiplas linguagens, tais como Scala, Java, Clojure.
  • Stream Sources: Apache usa HDFS enquanto o Apache Storm usa spout.
  • Messaging: Apache apark usa Akka, Netty enquanto Apache storm usa ZeroMQ, Netty
  • Gestão de Recursos: Para Apache spark Yarn e Meson são responsáveis enquanto que para Apache storm Yarn e Mesos são responsáveis.
  • Latency: Maior latência em comparação com o Apache Spark enquanto que o Apache Storm fornece melhor baixa latência com menores restrições
  • Stream Primitives: Apache Spark usa DStream enquanto Apache Storm usa Tuple, Partition
  • Custo de desenvolvimento: Apache spark usa o mesmo código para processamento batch e stream enquanto no Apache Storm o mesmo código não pode ser usado.
  • Persistência: Apache spark usa por RDD enquanto Apache storm usa MapState
  • Tolerância a falhas: No Apache spark ele lida com a reinicialização de trabalhadores via gerenciador de recursos que pode ser YARN, Mesos ou seu gerenciador stand alone enquanto no Apache storm se o processo falhar o processo supervisor irá reiniciá-lo automaticamente conforme o gerenciamento do estado é tratado através do zookeeper
  • Provisionamento: O Apache spark suporta monitoração básica utilizando Ganglia enquanto o Apache storm utiliza Apache Ambari
  • Throughput: Apache spark serve 100k registros por nó por segundo enquanto Apache storm serve 10k registros por nó por segundo.
  • State Management: A mudança e manutenção do estado no Apache Spark pode ser atualizada via UpdateStateByKey, mas nenhuma estratégia plugável pode ser aplicada no sistema externo para a implementação do estado. Considerando que Storm não fornece qualquer estrutura para o armazenamento de qualquer saída de parafuso interveniente como um estado. Portanto, cada aplicação tem que criar um estado para si mesma sempre que necessário.
  • Especialidade: Apache spark usa processamento unificado (batch, SQL etc.) enquanto Apache storm usa RPC distribuído

Apache Storm e Apache Spark são grandes soluções que resolvem o problema de ingestão e transformação de streaming.

Leia mais… http://entradasoft.com/blogs/apache-spark-vs-apache-storm