O documento analisa e caracteriza novas ferramentas para computação distribuída na nuvem. Ele classifica as ferramentas em três categorias: processamento batch, interativo e em tempo real. Uma tabela descreve várias ferramentas, incluindo Hadoop, Spark e Storm, indicando suas funcionalidades em cada categoria. Desafios na programação dessas ferramentas e conclusões sobre sua evolução futura são discutidos.
Utilização de traços de execução para migração de aplicações para a nuvem
Análise Ferramentas Computação Distribuída Nuvem
1. Análise e Caracterização das Novas
Ferramentas para Computação
Distribuída na Nuvem
Otávio M. de Carvalho, Eduardo Roloff,
Marco A. Z. Alves, Philippe O. A. Navaux
Universidade Federal do Rio Grande do Sul
Grupo de Processamento Paralelo e Distribuído
{omcarvalho,eroloff,mazalves,navaux}@inf.ufrgs.br
2. Motivação
●
●
●
Grande quantidades de dados estão sendo
gerados. Atualmente, já produzimos 2.8 trilhões
de GB. [1]
A produção de dados está crescendo 60% a
cada ano.
Grandes volumes de dados também estão sendo
gerados. A cada 60 segundos, 600 novas
postagens em blogs são feitas, e 34.000
tweets são enviados. [2]
[1] IBM CMO Study 2011
[2] IDC Key Forecast Assumptions for the Worldwide Big Data Technology and Services Market, 2012-2015
2
3. Objetivos
●
●
●
Buscar as principais iniciativas desenvolvidas
para a evolução do modelo MapReduce
Caracterizar as diferentes iniciativas em
sub-grupos, para melhor compreender as
suas principais distinções
Compreender quais modificações vem sendo
mais bem-sucedidas, ajudando a determinar
quais ferramentas possuem o maior potencial
para estudos mais aprofundados
3
5. Abordagens Iniciais
●
Inicialmente, as abordagens eram próximas às dos
bancos de dados clássicos. Sendo caracterizadas
principalmente pela introdução de grandes volumes
dados, nos sistemas de processamento, aguardando
o término do seu processamento após um
determinado período de tempo.
5
12. Nome
Ano
Teradata Aster
2013
Pivotal HD
Descrição
Batch
Interativo
Tempo Real
Banco de dados MPP
2013
Conjunto de ferramentas de processamento distribuído
Google Photon
2013
Sistema para o processamento distribuído de fluxos de dados
AMPLab BDAS
2012
Conjunto de ferramentas de processamento distribuído em memória
Google Spanner
2012
Banco de dados distribuído com transações externamente consistentes
Actian ParAccel
2012
Banco de dados MPP
Cloudera Impala
2012
Sistema para o processamento de consultas interativas
StreamBase CEP
2012
Ferramenta comercial de processamento complexo de eventos
Apache Giraph
2012
Ferramenta para o processamento distribuído de grafos
Apache Drill
2012
Ferramenta para o processamento de consultas interativas
Apache Flume
2012
Ferramenta para o processamento de fluxos contínuos de dados
Apache YARN
2011
Evolução do Apache Hadoop
SAP HANA
2011
Banco de dados em memória
Google Megastore
2011
Banco de dados distribuído que precedeu o Google Spanner
Apache Storm
2011
Ferramenta para o processamento de eventos complexos
Apache Kafka
2011
Sistema para o processamento de fluxos contínuos de dados
MapR M5
2011
Conjunto de ferramentas de processamento distribuído
Hortonworks HDP
2011
Conjunto de ferramentas de processamento distribuído
Google Pregel
2010
Sistema distribuído para o processamento de grafos
Google Percolator
2010
Sistema distribuído para processamento incremental
Google Dremel
2010
Ferramenta para a análise interativa de dados
AMPLab Spark
2010
Sistema de processamento de dados em memória
VoltDB
2010
Sistema de banco de dados em memória
Apache S4
2010
Ferramenta para o processamento de fluxos contínuos de dados
HP Vertica
2010
Banco de dados MPP
Apache Hive
2009
Ferramenta para o processamento de consultas interativas
Cloudera CDH
2009
Conjunto de ferramentas de processamento distribuído
Apache Cassandra
2009
Sistema de armazenamento de dados distribuído
Google BigTable
2006
Sistema de armazenamento de dados distribuído
Apache Hadoop
2005
Sistema de processamento de dados distribuído
Google MapReduce
2004
Sistema de processamento distribuído que deu origem ao Hadoop
12
14. Nome
Teradata Aster
Pivotal HD
AMPLab BDAS
Actian ParAccel
Apache Giraph
Apache YARN
MapR M5
Hortonworks HDP
Google Pregel
Google Percolator
AMPLab Spark
HP Vertica
Cloudera CDH
Apache Hadoop
Google MapReduce
Ano
2013
2013
2012
2012
2012
2011
2011
2011
2010
2010
2010
2010
2009
2005
2004
Batch
Interativo
Tempo Real
14
15. Ferramentas de Processamento
Interativo
●
●
●
Caracterizadas principalmente por Sistemas de
Banco de Dados distribuídos, que utilizam
abstrações do tipo NoSQL ou NewSQL
São voltados para o armazenamento e para o
processamento de consultas interativas sobre
volumes intermediários de dados
Problema: Intersecção com a criação de grandes
conjuntos de ferramentas, que visam oferecer
abordagens para o processamento de diversos
tipos de problemas e tamanhos de consultas
(Apache YARN e AMPLab BDAS, por exemplo)
15
16. Nome
Teradata Aster
Pivotal HD
AMPLab BDAS
Google Spanner
Actian ParAccel
Cloudera Impala
Apache Drill
Apache YARN
SAP HANA
Google Megastore
MapR M5
Hortonworks HDP
Google Dremel
VoltDB
HP Vertica
Apache Hive
Cloudera CDH
Apache Cassandra
Google BigTable
Ano
2013
2013
2012
2012
2012
2012
2012
2011
2011
2011
2011
2011
2010
2010
2010
2009
2009
2009
2006
Batch
Interativo
Tempo Real
16
17. Ferramentas de Processamento em
Tempo Real
●
●
●
●
Ferramentas de CEP e Stream Processing, focadas
em processar dados online em Tempo Real
Geram análises contínuas sobre grandes volumes
de eventos, eliminando a necessidade de
armazenamento antes da realização das consultas
Utilização de heurísticas e algoritmos de
aproximação, aplicando transformações sobre os
dados para obter os resultados
Execução contínua, algoritmos executam até que
não sejam mais necessários
17
19. Desafios
●
●
As metodologias para programação desse tipo de
sistemas ainda não estão bem definidas: Os sistemas
Batch apresentam abordagem imperativa; Os sistemas de
Tempo Real se caracterizam predominantemente pela
utilização de linguagens funcionais; Já os os Interativos,
se caracterizam por abordagens baseadas em SQL.
As ferramentas apresentam focos específicos, mas em
diversos casos apresentam possibilidades de utilizar a sua
estrutura para resolver outros tipos de problemas, ainda
que com performance reduzida. O que dificulta a
caracterização desses sistemas de abordagem
heterogênea.
19
20. Conclusões e Trabalhos Futuros
●
●
●
●
O ambiente de aplicações distribuídas para o processamento na
nuvem não limita-se ao Hadoop, e está sendo constantemente
estendido
A proposta de caracterização, nos três grandes grupos sugeridos,
facilita o processo de seleção das ferramentas e ajuda a determinar
quais apresentam potencial para serem utilizadas por aplicações
distribuídas na nuvem.
Ainda não é possível afirmar se estas implementações convergirão
para grandes sistemas de propósitos gerais, ou se evoluirão para um
conjunto ainda mais heterogêneo de ferramentas para problemas
específicos.
Em nossos trabalhos futuros, iremos selecionar um subconjunto
dessas ferramentas para analisar mais detalhadamente
20
21. Análise e Caracterização das Novas
Ferramentas para Computação
Distribuída na Nuvem
Otávio M. de Carvalho, Eduardo Roloff,
Marco A. Z. Alves, Philippe O. A. Navaux
Universidade Federal do Rio Grande do Sul
Grupo de Processamento Paralelo e Distribuído
{omcarvalho,eroloff,mazalves,navaux}@inf.ufrgs.br