A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR."— Transcrição da apresentação:

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 7/agosto/2015

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. 2 Parte I Parte II

3 Recapitulação Sistemas distribuídos para processamento online de eventos complexos Arquitetura genérica 3 Sistema de Processamento de Eventos 001001100110 010010001011 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) 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.

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). 4

5 Conceitos importantes sobre escalabilidade e elasticidade em Sistemas CEP elasticidade 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

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). 6

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. 7

8 Como funciona a operação de Scale Out no Sistema SEEP 8 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.

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). 9

10 Principais sistemas CEP e suas características Sistema Linguagens 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. 10

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 11 Vejamos um exemplo usando SEEP. Na prática (programação), os outros sistemas funcionam de forma muito similar!

12 Exemplo SEEP – Criação da Topologia 12 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.

13 Exemplo SEEP – Operador Source 13 Conector para troca de mensagens. Construção da tupla. Envio da tupla.

14 Exemplo SEEP – Operador Processor 14 Obtendo valores específicos da tupla.

15 Exemplo SEEP – Operador Sink 15

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

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. 17

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). 18

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. 19

20 Perguntas? e Respostas! 20


Carregar ppt "Introdução aos sistemas distribuídos on-line para processamento de fluxos de dados – Parte II PROF. ANDRÉ LEON S. GRADVOHL, DR."

Apresentações semelhantes


Anúncios Google