Desde a introdução da Spark à Apache Software Foundation em 2014, ela recebeu grande interesse de desenvolvedores, provedores de software corporativo e fornecedores independentes de software que buscam capitalizar sua velocidade de processamento na memória e APIs uniformes e coesas.
No entanto, há um debate acalorado sobre se o Spark pode substituir o Hadoop para se tornar a principal ferramenta de análise de big data.
Neste post, eu tentei explicar a diferença entre o Spark e o Hadoop de uma maneira simples para que qualquer um, mesmo aqueles sem experiência em ciência da computação, possam entender.
Embora se diga que o Spark funciona mais rápido que o Hadoop em certas circunstâncias, ele não possui seu próprio sistema de armazenamento distribuído. Então, primeiro vamos entender o conceito de sistema de arquivos distribuídos.
O sistema de armazenamento distribuído permite armazenar grandes conjuntos de dados em um número infinito de servidores, em vez de armazenar todos os conjuntos de dados em um único servidor.
Quando a quantidade de dados aumenta, você pode adicionar quantos servidores desejar no sistema de armazenamento distribuído. Isso torna um sistema de armazenamento distribuído escalável e econômico, porque você está usando somente hardware adicional (servidores) quando há uma demanda.
O Spark não possui seu próprio sistema para organizar arquivos de maneira distribuída (o sistema de arquivos). Por esse motivo, os programadores instalam o Spark no Hadoop para que os aplicativos avançados de análise do Spark possam usar os dados armazenados usando o HDFS (Hadoop Distributed File System). O Hadoop tem um sistema de arquivos muito parecido com o do seu computador de mesa, mas nos permite distribuir arquivos em várias máquinas. O HDFS organiza as informações em um conjunto consistente de blocos de arquivos e blocos de armazenamento para cada nó.
O HDFS usa o MapReduce para processar e analisar dados. O MapReduce recebe uma cópia de todos os dados em um servidor físico após cada operação. Isso foi feito porque os dados armazenados em uma RAM são voláteis do que os armazenados em um servidor físico.
Em contraste, o Spark copia a maioria dos dados de um servidor físico para uma memória RAM, isso é chamado de operação “na memória”. Isso reduz o tempo necessário para interagir com os servidores e torna o Spark mais rápido do que o sistema MapReduce do Hadoop. O Spark usa um sistema chamado Conjuntos de Dados Distribuídos Resilientes para recuperar dados quando há uma falha.
O processamento em tempo real significa que, quando os dados são capturados, eles são inseridos em um aplicativo analítico, e o aplicativo analítico processa e analisa os dados e fornece insights rapidamente ao usuário através de um painel. Para que o usuário possa tomar as ações necessárias com base nos insights fornecidos pelo aplicativo.