O que é o Spark ?
Para
realizar análises de grandes quantidades de dados, localizados em clusters com
diversos nós, precisamos de recursos tradicionais de SQL e Datawarehouse ( Star
schemas, drill down, etc ), assim como precisamos ter algorítimos e estruturas
de dados para otimizar as consultas em caso de falhas em qualquer um dos nós
envolvidos.
Outro
ponto que observamos mais recentemente nestas análises massivas de dados é o
uso de algorítimos chamados de “machine learning” (Page-Ranking, Clustering,
Regression, etc), que fazem um reuso de dados muito frequente.
O
framework MapReduce da plataforma Hadoop simplificou e automatizou bastante a análise de
quantidades massivas de dados em clusters,
mas a medida que as análises passam a exigir um reuso de dados, a
leitura e gravação para disco podem se tornar um problema. Precisamos ressaltar que o Hadoop MapReduce não é um framework orientado para transações e análises que precisem de baixo tempo de
resposta.
Visando
atender estes novos cenários, o AMPLab da UC Berkeley ( http://amplab.cs.berkeley.edu/ ),
desenvolveu um projeto chamado Spark, que visava resolver estas questões
colocadas acima, permitindo realizar análises rápidas em quantidades massivas
de dados, baseados em estruturas de memória compartilhadas, com facilidade de
uso e que fosse integrado ao ambiente Hadoop.
Neste
projeto Spark foi desenvolvido e implementado o conceito dos chamados RDDs
(Resilient Distributed Datasets), que permitem o reuso de dados distribuídos em
uma variedade de aplicações, provendo um mecanismo eficiente para recuperação
de falhas em clusters. Os RDDs são estruturas de dados em paralelo, tolerantes
a falha, que permitem ao usuário persistir resultados intermediários em
memória, controlar o particionamento para otimizar os dados e manipular dados
usando um conjunto de operadores.
Atualmente
o Spark é um dos projetos da Fundação Apache ( http://spark.apache.org
), roda programas em Java, Python e Scala muito mais rápido que usando Hadoop MapReduce.
Em um teste utilizando algorítimos de
regressão com o framework Spark, este foi 100 vezes mais rápido que um
algorítimo similar usando apenas Hadoop MapReduce.
Rodando
sobre o Spark Engine foram desenvolvidos softwares para análise de dados usando
SQL ( Shark – Hive on Spark ), biblioteca Machine Learning ( MLIB ) e biblioteca para
processamento de dados usando grafos ( GraphX ).
Nos próximos posts vamos falar sobre o Impala e sobre o Shark (Hive on Spark).
Comentários
Postar um comentário