As tecnologias são vistas por vezes como concorrentes, mas é crescente o consenso de que são melhores conjugadas.
As conversas sobre Big Data raramente excluem menções às plataformas Hadoop ou Apache Spark. Há cinco pontos essenciais de comparação que se destacam:
Fazem coisas diferentes
Hadoop e Spark são ambos matrizes de Big Data, mas não têm as mesmas finalidades. A primeira é, essencialmente, uma infra-estrutura de dados distribuída de software. Distribui conjuntos de dados em massa por vários nós em agrupamentos de servidores básicos, prescindindo da compra e manutenção de hardware específico e caro.
Também faz índices e mantém o controle sobre localização dos dados, permitindo um processamento mais eficaz de grandes volumes de dados e processamento analítico.
A Spark é uma ferramenta de processamento de dados que atua sobre esses conjuntos de dados distribuídos. E não faz armazenamento distribuído.
Pode-se usar um sem o outro
A Hadoop inclui uma componente de armazenamento, conhecida por Hadoop Distributed File System (HDFS), mas também outra de processamento, denominada MapReduce. Assim, não é necessário a Spark para o processamento.
Mas também se pode usar a Spark sem a Hadoop. A ferramenta não tem sistema de gestão de arquivos e, por isso, precisa de ser integrado com um. Se não for o HDFS, então outra plataforma de dados baseada em cloud computing.
A Spark foi projetada para a Hadoop e assim muitos concordam que funcionam melhor em conjunto.
Spark mais rápida
A Spark é geralmente muito mais rápida do que o MapReduce devido à forma como processa os dados. Enquanto o MapReduce funciona por etapas, a Spark age sobre todo o conjunto de dados de uma só vez.
“O fluxo de trabalho do MapReduce faz-se da seguinte forma: ler dados do cluster, realizar uma operação, escreve os resultados no agrupamento, ler os dados atualizados a partir do agrupamento, realizar a próxima operação, escreve os resultados no cluster, etc.”, explica Kirk Borne, cientista de dados da Booz Allen Hamilton.
A Spark, por outro lado, completa todas as operações de analítica de dados na memória e em tempo quase real: “é ler os dados do agrupamento, realizar todas as operações analíticas necessárias, escreve os resultados no agrupamento, e está feito”, acrescenta Borne. Consegue ser dez vezes mais rápida que o MapReduce no processamento em lote e até 100 vezes nas análises “in-memory”, sustenta.
Pode não ser precisa a velocidade da Spark
O estilo de processamento do MapReduce pode ser suficiente se as operações de dados e requisitos de informação forem na sua maioria estáticas e se puder esperar pelo processamento em lote. Mas quando se precisa de fazer análise em fluxo contínuo de dados, como a partir de sensores num chão de fábrica, ou de ter aplicações que exigem múltiplas operações, provavelmente dever-se-á optar pela Spark.
A maioria dos algoritmos de aprendizagem de máquina, por exemplo, exigem múltiplas operações. As aplicações comuns para a Spark incluem campanhas de marketing em tempo real, recomendações de produtos online, análise de cibersegurança e monitorização de registos (“logs”) de máquinas.
Recuperações diferentes face a falhas
A Hadoop é naturalmente resistente a quedas de sistema ou outras falhas, já que os dados são gravados em disco depois de cada operação. Mas a Spark tem uma resiliência semelhante integrada, em virtude dos seus objetos virtuais de dados serem armazenados em conjuntos de dados resilientes ‒ Resilient Distributed Dataset (RDD) ‒, distribuídos por todo o “cluster” de dados.
“Esses objetos de dados podem ser armazenados na memória ou em discos, e a estrutura RDD fornece a recuperação completa perante falhas ou quedas [de sistemas]”, assinala Borne.
Fonte: ComputerWorld