Análise e Caracterização das Novas Ferramentas para Computação em Nuvem

Preview:

DESCRIPTION

Pesquisa e caracterização das novas ferramentas para Computação em Nuvem WSCAD-IC 2013 - Porto de Galinhas - Brasil

Citation preview

Análise e Caracterização das Novas Ferramentas para Computação

Distribuída na NuvemOtávio M. de Carvalho, Eduardo Roloff, Marco A. Z. Alves, Philippe O. A. Navaux

Universidade Federal do Rio Grande do SulGrupo 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

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

4

Abordagens para a Computação Distribuída na Nuvem

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.

6

Abordagens Atuais

● Atualmente, estão crescendo as abordagens que visam processar dados em fluxos contínuos, aplicando transformações sobre o conjunto de dados, visando obter resultados da maneira mais rápida possível.

7

Classificação das Abordagens

8

Processamento Batch

9

Processamento Interativo

10

Processamento em Tempo Real

11

Caracterização das Novas Ferramentas para Computação

Distribuída na Nuvem

12

Nome Ano Descrição Batch Interativo Tempo Real

Teradata Aster 2013 Banco de dados MPP

Pivotal HD 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

13

Ferramentas de Processamento Batch

● Bancos de Dados MPP● Versões derivadas do Apache Hadoop

inspiradas pelo Google MapReduce ● Orientadas ao processamento de grandes

volumes de dados

14

Nome Ano Batch Interativo Tempo Real

Teradata Aster 2013

Pivotal HD 2013

AMPLab BDAS 2012

Actian ParAccel 2012

Apache Giraph 2012

Apache YARN 2011

MapR M5 2011

Hortonworks HDP 2011

Google Pregel 2010

Google Percolator 2010

AMPLab Spark 2010

HP Vertica 2010

Cloudera CDH 2009

Apache Hadoop 2005

Google MapReduce 2004

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)

16

Nome Ano Batch Interativo Tempo Real

Teradata Aster 2013

Pivotal HD 2013

AMPLab BDAS 2012

Google Spanner 2012

Actian ParAccel 2012

Cloudera Impala 2012

Apache Drill 2012

Apache YARN 2011

SAP HANA 2011

Google Megastore 2011

MapR M5 2011

Hortonworks HDP 2011

Google Dremel 2010

VoltDB 2010

HP Vertica 2010

Apache Hive 2009

Cloudera CDH 2009

Apache Cassandra 2009

Google BigTable 2006

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

18

Nome Ano Batch Interativo Tempo Real

Pivotal HD 2013

Google Photon 2013

AMPLab BDAS 2012

StreamBase CEP 2012

Apache Flume 2012

Apache YARN 2011

Google Megastore 2011

Apache Storm 2011

Apache Kafka 2011

MapR M5 2011

Hortonworks HDP 2011

Apache S4 2010

Cloudera CDH 2009

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.

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

Análise e Caracterização das Novas Ferramentas para Computação

Distribuída na NuvemOtávio M. de Carvalho, Eduardo Roloff, Marco A. Z. Alves, Philippe O. A. Navaux

Universidade Federal do Rio Grande do SulGrupo de Processamento Paralelo e Distribuído

{omcarvalho,eroloff,mazalves,navaux}@inf.ufrgs.br