introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – parte ii...

20
Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. [email protected] 7/agosto/201

Upload: ruy-rico-azeredo

Post on 07-Apr-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte IIPROF. ANDRÉ LEON S. GRADVOHL, [email protected]

7/agosto/2015

Page 2: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

2

Plano de apresentação• Sobre o Palestrante.• Histórico e motivação para a utilização de Complex Event

Processing – CEP systems.• Definição de sistemas CEP e conceitos importantes. • Questões de tolerância a falhas envolvidas em sistemas

CEP.• Questões de escalabilidade envolvidas em sistemas CEP.• Principais sistemas CEP e suas características.• Perspectivas de pesquisa e desenvolvimento na área de

sistemas distribuídos para processamento de fluxos de dados.

Parte I

Parte II

Page 3: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

3

Recapitulação• Sistemas distribuídos para processamento online de

eventos complexos• Arquitetura genéricaSistema de Processamento de

Eventos

001001100110010010001011

Fluxo de dados

Esses vértices são operadores. Eles

realizam computações

simples.Esses arcos são

fluxos de dados.

Eventualmente, alguns

operadores salvam dados

em disco.

Alguns operadores podem estar juntos

no mesmo nó de processamento.

Os fluxos de dados podem vir de

diferentes fontes (e. g. sites, celulares,

sensores)

<key_1, value_A><key_2, value_B><key_3, value_C>

Dados são processados pelos operadores e podem ser

transformados por eles, antes de serem enviados a outros operadores.

O grafo acíclico direcionado é a

topologia do sistema.

Page 4: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

4

Conceitos importantes sobre escalabilidade • Escalabilidade é a capacidade de um sistema para lidar com uma

quantidade crescente de trabalho de uma maneira capaz; ou

• Escalabilidade é a sua capacidade de um sistema aumentar seus recursos para acomodar esse crescimento.• Sistemas CEP recebem como entrada um ou mais fluxos de dados

(streams).• Nem sempre os fluxos têm a mesma vazão (throughput) ;• Nem sempre os dados no fluxo são “comportados” (mesmo tipo, mesmo formato)

e podem conter “outliers”.• As vezes os fluxos vêm em “burst” (um fluxo muito maior que o habitual em um

curto período).

Page 5: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

5

Conceitos importantes sobre escalabilidade e elasticidade em Sistemas CEP• Em sistemas CEP, especialmente naqueles implementados na

nuvem computacional, também há o conceito de elasticidade!

• Escalabilidade e elasticidade são conceitos diferentes!!• A elasticidade é a capacidade do sistema reagir às demandas por

processamento, aumentando ou diminuindo a alocação de recursos computacionais conforme as exigências.• Escalabilidade é planejada, enquanto elasticidade é sob demanda.

Cuidado!!!

Page 6: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

6

Conceitos importantes sobre escalabilidade e elasticidade em Sistemas CEP• Por exemplo, caso o throughput aumente o sistema tem que

aumentar a capacidade de processamento e evitar o descarte de tuplas. • Caso o throughput diminua, o sistema pode retornar ao seu

tamanho original.• Em um cluster local, a elasticidade pode contribuir com...• Economia de energia (menos CPUs ou cores trabalhando, menos memória);• Menos recursos utilizados (e mais recursos disponíveis a outros usuários que

compartilham o sistema).

Page 7: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

7

Conceitos importantes sobre escalabilidade e elasticidade em Sistemas CEP• As seguintes operações ocorrem em sistemas escaláveis:• Scale Up / Scale Down;• Scale Out / Scale In;

• Scale Up / Scale Down ou escalabilidade vertical significa adicionais mais recursos computacionais ao sistema (CPU, memória etc).• Scale Out / Scale In ou escalabilidade horizontal significa adicionar

mais nós de processamento ao sistema.• No caso de sistemas CEP, vamos usar os termos Scale Out / Scale

In para designar o aumento ou redução, respectivamente, de operadores à topologia.

Page 8: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

8

Como funciona a operação de Scale Out no Sistema SEEP

Master(Supervisor)

O Master ou supervisor coleta métricas dos nós de processamento (e

operadores), e.g. utilização de CPU/Memória; capacidade

das filas; throughput; latências etc;

O Master detecta um operador

sobrecarregado e decide pela

operação scale out.

O supervisor pega um novo operador

do conjunto disponível e copia o

estado desse operador para o

novo.

O estado do operador é composto pelos seus

estados de processamento, buffers

de entrada e saída e estado de roteamento.

Page 9: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

9

Como funciona a operação de Scale in no Sistema SEEP• A operação de Scale in ainda é uma questão em aberto.• Em sistemas com operadores stateless, a operação de scale in

implica somente na atualização do estado de roteamento no operador upstream e na liberação dos recursos do operador que fez o scale out.• Em sistemas com operadores stateful, o grande problema é como

fazer a combinação dos estados dos operadores (original e scaled out).

Page 10: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

10

Principais sistemas CEP e suas características

SistemaLinguagens de Programação suportadas

Estratégia para tolerância a falhas

Subsistema para tratar falhas.

MillWheel(Google)

Virtualmente qualquer linguagem de programação

Checkpoint não coordenado periódico; Upstream backup.

Nenhum, o sistema trata as falhas sozinho.

S4(Yahoo/Apache) Java Checkpoint não coordenado

periódico. ZooKeeper.

Spark Streaming(Apache) Java, Scala e Python

Checkpoint coordenado periódico; Replicação; Recuperação paralela.

Nenhum, o sistema trata as falhas sozinho.

Storm(Apache)

Virtualmente qualquer linguagem de programação

Upstream backup; Sem checkpoints. Nimbus, ZooKeeper.

SEEP(Imperial College) Java

Checkpoint não coordenado periódico; Replicação; Gerenciamento de estados.

Nenhum, o sistema trata as falhas sozinho.

Page 11: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

11

Principais sistemas CEP• Spark Streaming• https://spark.apache.org/streaming

• Storm• https://storm.apache.org

• SEEP• http://lsds.doc.ic.ac.uk/projects/SEEP

Vejamos um exemplo usando SEEP. Na prática (programação), os outros sistemas funcionam de forma muito similar!

Page 12: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

12

Exemplo SEEP – Criação da TopologiaDefinição dos

identificadores presentes nas tuplas.

Adição do Operador fonte de tuplas.

Operador, identificador do operador e identificadores

internos da tupla.Conexão dos

operadores entre si.

Page 13: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

13

Exemplo SEEP – Operador SourceConector para troca de

mensagens.

Construção da tupla.Envio da tupla.

Page 14: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

14

Exemplo SEEP – Operador Processor

Obtendo valores específicos da tupla.

Page 15: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

15

Exemplo SEEP – Operador Sink

Page 16: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

16

Exemplo SEEP – Definição de políticas de Scale out (in)

Page 17: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

17

Perspectivas de pesquisa e desenvolvimento na área de Stream Computing e sistemas CEP.• Em um mundo superconectado, a pesquisa em Stream computing

tem várias ramificações atualmente:• Aplicações e Requisitos:• Métricas e avaliações de desempenho de sistemas CEP.• Aplicações em Clima Espacial, Monitoramento Ambiental, Mercado Financeiro,

Sensoriamento participativo etc.• Modelos, Arquiteturas e Paradigmas:• Adaptações dos algoritmos e modelos de mineração off-line (batch) para on-line

(stream). Por exemplo, algoritmos de associação, agrupamento, classificação.• Implementação do conceito de “Concept Drift” para stream computing.

• Middleware e infraestrutura• Criação de linguagens específicas para estabelecer queries em sistemas CEP.• Tolerância a falhas, disponibilidade e resiliência.

Page 18: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

18

Pesquisas em andamento no Grupo HighPIDS.• As pesquisas em andamento no grupo HighPIDS são as seguintes:• Recommendation system for buying and selling on stock market using

Ensembles.• Aplicação de técnicas de ensemble para previsão de ciclos solares.• Predicting solar activity via artificial neural networks applied to flow data of X-

rays.• Fault tolerance and high availability in distributed online stream processing

systems (Microsoft).• Multi-dimensional analysis of online data stream processing systems (FAPESP

2015/01657-9).We need graduate students (Masters or

PhD) for this subject!!

Page 19: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

19

Algumas Referências• Castro Fernandez, R. et al. Integrating scale out and fault tolerance in

stream processing using operator state management. In: Proceedings of the 2013 International Conference on Management of Data - SIGMOD ’13. New York, USA: ACM Press, 2013.

• GEDIK, B. et al. Elastic Scaling for Data Stream Processing. IEEE Transactions on Parallel and Distributed Systems, v. 25, n. 6, p. 1447–1463, 2014.

• Martin, A.; Fetzer, C.; Brito, A. Active replication at (almost) no cost. In: Proceedings of the IEEE Symposium on Reliable Distributed Systems. IEEE, out. 2011

• Pham, C. M. et al. An evaluation of zookeeper for high availability in system S. In: Proceedings of the 5th ACM/SPEC international conference on Performance engineering - ICPE ’14. New York, USA: ACM Press, 2014.

Page 20: Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR. GRADVOHL@FT.UNICAMP.BR

20

Perguntas? e Respostas!