Cinco pontos de comparação entre Hadoop e Spark

As tecnologias são vistas por vezes como concorrentes, mas é crescente o consenso de que são melhores conjugadas.

big-data-100632763-large970.idge

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 controlo sobre localização dos dados, permitindo um processamento mais eficaz de grandes volumes de dados e processos de analítica.

A Spark é uma ferramenta de processamento de dados que actua 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 ficheiros 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 projectada 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, inscrever os resultados no agrupamento, ler os dados actualizados a partir do agrupamento, realizar a próxima operação, inscrever 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, inscrever 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 analítica 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 objectos virtuais de dados serem armazenados em conjuntos de dados resilientes ‒ Resilient Distributed Dataset (RDD) ‒, distribuídos por todo o “cluster” de dados.

“Esses objectos 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.




Deixe um comentário

O seu email não será publicado