Introdução aos sistemas distribuídos
on-line para processamento de fluxos
de dados – Parte II
PR O F. A NDR É L E O N S . G R A DVO HL , D R .
G R ADVO HL @FT.UNICAMP.BR
7/agosto/2015
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.
Parte I
• 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.
Parte II
• Perspectivas de pesquisa e desenvolvimento na área de
sistemas distribuídos para processamento de fluxos de dados.
2
Recapitulação
•
Dados são processados pelos operadores e
Sistemas distribuídos
para
online
podem
serprocessamento
transformados por eles,
antesde
de eventos complexos
serem enviados a outros operadores.
• Arquitetura genérica
Sistema de Processamento de Eventos
Os fluxos de dados podem
vir de diferentes fontes
(e. g. sites, celulares,
sensores)
001001100110
010010001011
Fluxo de
dados
<key_2,
value_B>
<key_1,
<key_3, value_A>
value_C>
Alguns operadores podem
estar juntos no mesmo nó
de processamento.
Esses vértices são
operadores. Eles
realizam computações
simples.
Esses arcos são
fluxos de dados.
O grafo acíclico
direcionado é a
topologia do sistema.
Eventualmente,
alguns operadores
salvam dados em
disco.
3
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).
4
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.
5
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).
6
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.
7
Como funciona a operação de Scale Out no Sistema SEEP
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.
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.
Master
(Supervisor)
8
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).
9
Principais sistemas CEP e suas características
Sistema
MillWheel
(Google)
S4
(Yahoo/Apache)
Spark Streaming
(Apache)
Storm
(Apache)
SEEP
(Imperial College)
Linguagens de Programação
Estratégia para tolerância a falhas
suportadas
Virtualmente qualquer linguagem Checkpoint não coordenado
de programação
periódico; Upstream backup.
Checkpoint não coordenado
Java
periódico.
Checkpoint coordenado periódico;
Java, Scala e Python
Replicação; Recuperação paralela.
Virtualmente qualquer linguagem
Upstream backup; Sem checkpoints.
de programação
Checkpoint não coordenado
Java
periódico; Replicação;
Gerenciamento de estados.
Subsistema para tratar
falhas.
Nenhum, o sistema trata as
falhas sozinho.
ZooKeeper.
Nenhum, o sistema trata as
falhas sozinho.
Nimbus, ZooKeeper.
Nenhum, o sistema trata as
falhas sozinho.
10
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!
11
Exemplo SEEP – Criação da Topologia
Definiçã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.
12
Exemplo SEEP – Operador Source
Conector para troca de
mensagens.
Construção da tupla.
Envio da tupla.
13
Exemplo SEEP – Operador Processor
Obtendo valores específicos
da tupla.
14
Exemplo SEEP – Operador Sink
15
Exemplo SEEP – Definição de políticas de Scale out (in)
16
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.
17
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).
18
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.
19
Perguntas? e Respostas!
20
Download

Introdução aos sistemas distribuídos on-line para