O Que é Apache Spark e Suas Vantagens

Aprenda o que é Apache Spark e como ele melhora a performance de algoritmos iterativos drasticamente se comparado ao MapReduce



Introdução

Apache Spark é um framework de código fonte aberto para computação distribuída. Foi desenvolvido no AMPLab da Universidade da Califórnia e posteriormente repassado para a Apache Software Foundation que o mantém desde então. Spark provê uma interface para programação de clusters com paralelismo e tolerância a falhas.

 

Visão Geral

Apache Spark tem como seu principal componente RDDs Resilient Distributed Dataset (Conjunto de dados distribuído e resiliente), uma estrutura de dados somente leitura distribuída em cluster que é mantida de uma maneira tolerante a falhas, RDDs são os componentes de mais baixo nível na API do apache spark e são a fundação para desenvolvimento de estruturas de mais alto nível como Dataframes.

Em spark 1.x RDDs eram a principal API de programação, contudo a partir das versões 2.0 a API de Dataframes tornou-se a principal API e o uso de RDDs passou a ser desencorajado apesar de ainda ser possível utilizar-se de RDDs

 

História

Spark foi desenvolvido em 2012 em resposta a algumas limitações existentes com o paradigma de processamento de dados em alta escala MapReduce, que te força a uma fluxo de processamento de dados para construção de sistemas distribuídos, um dos maiores gargalos do MapReduce é a necessidade de leitura da entrada do disco mapear os dados, reduzi-los e posteriormente escrever os resultados em disco, sem a possibilidade de manter os resultados em memória para que seja processado posteriormente, este tipo de limitação afeta bastante a implementação de certos algoritmos principalmente a classe de algoritmos iterativos na qual muitos algoritmos de aprendizado de máquina (machine learning) fazem parte

 

Vantagens

Spark facilita a implementação de algoritmos iterativos, na qual precisam ler o conjunto dados completamente múltiplas vezes e ainda análise de dados exploratória onde buscas SQL são utilizadas para um melhor entendimento dos dados, Spark reduz a latência deste tipo de aplicação drasticamente quando comparado com MapReduce

 

Requisitos

Tipicamente o uso do apache spark requer um sistema de gerenciamento de cluster e um sistema de arquivos distribuídos, spark suporta os seguintes sistemas de gerenciamentos de cluster: Standalone (Sistema de gerenciamento embutido no apache spark), Hadoop Yarn, Apache Mesos ou Kubernetes. Já o número de sistemas de arquivos distribuídos é bastante diverso e inclui: HDFS (sistema de arquivos distribuídos do hadoop), lustre, Amazon S3, e outros

 

Conclusão

Spark se tornou um das ferramentas de processamento de big data mais importantes dos dias de hoje se você considera processar grandes quantidades de dados terabytes+ provavelmente apache spark foi considerado sua flexibilidade de uso e abstrações de alto nível são grandes diferenciais que tornaram o apache spark um poderosa ferramenta para pipelines de processamentos de dados e treinamento de algoritmos de machine learning

 

Referências:

  1. Wikipedia
  2. Pagina Oficial

 

 

 

Se Inscreva Na Nossa Newsletter Tenha Acesso Aos Melhores Artigos