Cinco coisas que você precisa saber sobre Hadoop e Apache Spark | Computerworld
Geralmente vistos como concorrentes no mercado de Big Data, começa a ser formar um consenso de que eles são melhores juntos
16/12/2015 às 11h13 16/12/2015 às 11h13
Clique para copiar https://computerworld.com.br/2015/12/16/cinco-coisas-que-voce-precisa-saber-sobre-hadoop-e-apache-spark/
As conversas sobre Big Data raramente excluem menções ao Hadoop ou ao Apache Spark. Geralmente são conceitos vistos como concorrentes no mercado. Porém, agora, começa a ser formar um consenso de que eles são melhores juntos. Confira a seguir o que eles fazem e como no que são comparáveis.
1. Fazem coisas diferentes. Hadoop e Spark são ambos matrizes de Big Data, mas não têm as mesmas finalidades. O Hadoop é, essencialmente, uma plataforma de computação distribuída que oferece dois serviços importantes: pode armazenar qualquer tipo de dados, a um custo baixo e em grande escala, ou pode realizar análises de dados complexos rapidamente.
Diferente das plataformas tradicionais, o Hadoop é capaz de armazenar qualquer tipo de dado no seu formato nativo e realizar, em escala, uma variedade de análises e transformações sobre esses dados. Com uma grande vantagem: baixo custo, já que é um software de código aberto que roda em hardware comum.
O Spark, por outro lado, é um framework que implementa o conceito dos RDDs (Resilient Distributed Datasets), permitindo o reuso de dados distribuídos em uma variedade de aplicações, provendo um mecanismo eficiente para recuperação de falhas em clusters; mas não faz armazenamento distribuído.
2. Você pode usar um sem o outro. O Hadoop inclui não apenas um componente de armazenamento, conhecido como o Hadoop Distributed File System, mas também um componente de processamento chamado MapReduce, de modo que você não precisa do Spark para processamento. Por outro lado, você também pode usar o Spark sem o Hadoop.
Como não conta com o seu próprio sistema de gerenciamento de arquivos, precisa ser integrado a um. Se não for o HDFS, então outra plataforma de dados baseada em cloud computing. Mas por ter sido projetado para o Hadoop, muitos concordam que ambos funcionam melhor juntos.
3. O Spark é mais rápido. O Spark é geralmente muito mais rápido que o MapReduce devido à forma como processa os dados. Enquanto o MapReduce opera em etapas, o Spark opera a partir de todo o conjunto de dados de um só vez.
"O fluxo de trabalho do MapReduce acontece da seguinte forma: ler dados do cluster, realizar uma operação, inscrever os resultados no agrupamento, ler os dados atualizados a partir do agrupamento, realizar a próxima operação, inscrever os resultados no cluster, e assim por dainte", explica Kirk Borne, cientista de dados da Booz Allen Hamilton.
O Spark, por outro lado, completa as operações de análise de dados na memória e em tempo quase real. O processo? "Ler os dados do cluster, realizar todas as operações analíticas necessárias, escrever os resultados no cluster e fim de papo", disse Borne. Por isso, o Spark pode ser até 10 vezes mais rápido que o MapReduce para o processamento em lote e até 100 vezes mais rápido para análises in-memory, explica Borne.
4. Você pode não precisar da velocidade do Spark. O estilo de processamento do MapReduce pode ser suficiente se as operações de dados e requisitos de informação forem estáticos, em sua maioria e for possível esperar pelo processamento em lote. Mas quando se precisa fazer análise em fluxos contínuos de dados, como a partir de sensores em um chão de fábrica, ou ter aplicações que requerem múltiplas operações, você provavelmente vai dar preferência ao uso do Spark.
A maioria dos algoritmos de aprendizado de máquina, por exemplo, requerem múltiplas operações. Aplicações comuns para o Spark incluem as campanhas de marketing em tempo real, as recomendações de produtos online, análise de segurança cibernética e monitoramento de log de máquina.
5. Recuperações diferentes face a falhas. O Hadoop é naturalmente resistente a quedas de sistema ou outras falhas, já que os dados são gravados em disco depois de cada operação. O Spark tem uma resiliência semelhante integrada, em virtude dos objetos virtuais de dados serem armazenados em conjuntos de dados resilientes ‒ Resilient Distributed Dataset (RDD) ‒, distribuídos por todo o "cluster" de dados.