• Nenhum resultado encontrado

Storm Processamento e análise real time para Big Data 7/24/12 Fabio Velloso

N/A
N/A
Protected

Academic year: 2021

Share "Storm Processamento e análise real time para Big Data 7/24/12 Fabio Velloso"

Copied!
53
0
0

Texto

(1)

7/24/12

Storm

Processamento e análise real time para Big Data

! Fabio Velloso

(2)

7/24/12

Fabio Velloso

Bio

Bacharel em Ciência da Computação - UFSCar MBA FGV

Desenvolvedor Java desde 1996 Fundador do SouJava

Gerente de Arquitetura de Sistemas Telefonica|VIVO Professor de SOA e Web Services do curso de Pós-Graduação "Lato-Sensu" em Desenvolvimento de Software para Web da UFSCar

Atualmente desenvolve projetos pessoais com Big Data, Cloud Computing, Design Thinking, Service Design e

(3)

7/24/12

Agenda

Storm

Definição e características

Cenários de uso e aplicações Storm

Storm e Hadoop

(4)

7/24/12

Agenda

Storm

Definição e características

Cenários de uso e aplicações Storm

Storm e Hadoop

(5)

7/24/12

Big Data

Contexto

50 Milhões

de twetts

por dia

72.9

produtos

vendidos

por segundo

24 Petabytes

processados

diariamente

20 Horas

de vídeo enviadas

por minuto

1.3 Exabytes

trafegados

internet móvel

2.9 Milhões

de emails

por segundo

March 8, 2012

(6)

7/24/12

Big Data

Contexto

Fonte: http://www.ibm.com/smarterplanet/us/en/innovation_explanations/article/jeff_jonas.html

(7)

7/24/12

Big Data

(8)

7/24/12

Big Data

Contexto

(9)

7/24/12

Agenda

Storm

Definição e características

Cenários de uso e aplicações Storm

Storm e Hadoop

(10)

7/24/12

Big Data

Definição

Conjuntos de dados muito grandes, dinâmicos e

complexos para serem processados por ferramentas ou processos tradicionais

Dificuldades:

!

capturar, armazenar, buscar, compartilhar, analisar e visualizar

Big Data não é sobre a geração de dados e sim sobre o seu processamento

(11)

7/24/12

Big Data

Características

Complexidade Tipos de dados Composição Formatos Regras Velocidade Criação de dados Processamento de dados Armazenamento Análise de dados ! ! Variedade

Dados não estruturados Dados semi-estruturados Diferentes fontes Diferentes formatos ! ! Volume Petabytes, Zettabytes ! !

V

3

(12)

7/24/12

Agenda

Storm

Definição e características

Cenários de uso e aplicações

Storm

Storm e Hadoop

(13)

7/24/12

Big Data

(14)

7/24/12

Big Data

Universidade do Texas - 2011

(15)

7/24/12

Big Data

Contexto

Explosão de dispositivos conectados na Internet Estimativa entre 16 e 50 bilhões em 2020

Mais dispositivos Mais aplicações Mais conteúdo

(16)

7/24/12

Big Data

Contexto

(17)

7/24/12

Agenda

Storm

Definição e características

Cenários de uso e aplicações

Storm

Storm e Hadoop

(18)

7/24/12

BackType comprada em Julho de 2011

Storm

Twitter Analytics

(19)

7/24/12

Storm

Objetivos

Escalável Transacional Velocidade no processamento Confiável Tolerante a falhas Simples Fácil de programar

(20)

7/24/12

Storm

Características

Sistema para processamento distribuído

Fluxo de dados continuo (stream de dados)

Processo sempre em execução tratando eventos Real Time

Complex Event Process (CEP)

Escrito em Clojure

Utiliza ZeroMQ como framework para concorrência (Asynch I/O e push/pull sockets)

(21)

7/24/12

Storm

Cenários de uso

Processamento de fluxos de dados

RPC distribuído (paralelizar CPUs facilmente) Processamento de dados de redes sociais

Continuous computation Real time analytics

Online machine learning Internet das coisas

(22)

7/24/12

Storm

Abstrações

Stream

Fluxo contínuo de dados Sequências de tuplas

Tuple

É uma lista de valores

Campo no tuple pode ser um objeto de qualquer tipo Precisa ser serializável

Suporta String, byte arrays, ArrayList, HashMap e Hashset por default

(23)

7/24/12

Storm

Componentes

Topology - Rede de Spouts e Bolts

Bolt - responsável pelo processamento das streams de entrada

Joins, agregações, filtros e transformações Podem gerar novos stream de saída

Spout - fontes de streams de dados

(24)

7/24/12

Storm

Topologia

Spout Bolt Spout Spout Bolt

(25)

7/24/12 Topologia ! ! ! ! !

Storm

Topologia

Topologia simples

Bolt grava os dados em file system

Twitter Reader

(Spout) Twitter Writer (Bolt)

Spout acessa o Twitter

Busca hashtag (#TDC2013)

(26)

7/24/12

Storm

Métodos Spout

ack(), close(), fail()

open(Map conf, TopologyContext context, SpoutOutputCollector

collector)

primeiro método chamado em um Spout context com todos dados da topologia

collector é objeto utilizado para enviar dados aos Bolts

declareOutputFields(OutputFieldsDeclarer declarer)

define o dado a ser enviado para objeto Bolt declarer.declare(new Fields("tweet"));

(27)

7/24/12

Storm

Spout

nextTuple é o método principal envia o valores para objeto Bolt

nextTuple é chamado no mesmo loop de ack() e fail()

checa se existe algo a processar para liberar thread

Se não existe algo a processar libera a thread para

ack() e fail() Valor a ser enviado ao Bolt e “id” Apenas exemplo

(28)

7/24/12

Estratégias

fail() pode reenviar uma mensagem

! !

finalizar a topologia depois de um certo número de erros assumir margem de erro para tweets por exemplo

Storm

Reliability

Confiabilidade da entrega das mensagens depende da necessidade da topopogia

ack(), quando a tupla é processada corretamente fail(), quando ocorre um erro

Desenvolvedor define programaticamente

!

necessário definir tupleId

(29)

7/24/12

cleanup()

chamado quando a topologia é encerrada liberar recursos

Storm

Métodos Bolt

prepare(Map conf, TopologyContext context, SpoutOutputCollector collector)

primeiro método chamado em um Spout context com todos dados da topologia

collector é objeto utilizado para enviar dados aos bolts

declareOutputFields(OutputFieldsDeclarer declarer)

define o dado a ser enviado para outros objetos bolt declarer.declare(new Fields("tweet"));

(30)

7/24/12

Storm

Bolt

execute()

método que executa o processamento

Envia o tweet para o próximo bolt como stream Declara o dado a ser enviado

(31)

7/24/12

TopologyBuilder define como os nós são organizados e trocam mensagens

Storm

Topologia

Número de theads para execução do Bolt é

configurável, basta adicionar um parâmetro em setBolt (padrão é 1)

Métodos setSpout e setBolt

shuffleGrouping agrupa Spout e Bolts definindo o fluxo de mensagens enviadas

(32)

7/24/12

allGrouping

envio de mensagens aos Bolts. Ex: limpar cache

Storm

Stream Grouping

shuffleGrouping

envia cada tupla randomicamente para os bolts

garante que cada consumidor receba o mesmo número de tuplas

fieldsGrouping

envio controlado por definições do programador

permite envio de conteúdo similar ou relacionado para o mesmo bolt

(33)

7/24/12

Storm

Topologia

Shutdown no cluster (opcional) Define o cluster como local Configurações para o cluster Cria a topologia definida Para 1 segundo antes do shutdown Número máximo de tuplas que podem estar pendentes em

(34)

7/24/12

Storm

Arquivos e compilação

(35)

7/24/12

Storm

Modos de operação

Local, topologias executam em uma máquina Remoto, topologias executam em um cluster

Componentes do Cluster

Nimbus

Supervisor e workers Zookeeper

Cluster Storm pode ser uma cadeia de Bolts

(36)

7/24/12

Storm

Cluster

Zookeeper Zookeeper Zookeeper Supervisor Supervisor Supervisor Supervisor Supervisor Nimbus

(37)

7/24/12

Storm

Cluster

Nimbus

Master node

Responsável por distribuir código no cluster, definir tarefas para os nós no cluster e monitorar falhas

Similar ao Hadoop JobTracker

Supervisor

Daemon executado nos “workers” (nós que processam os dados) Recebe tarefas do Nimbus para serem executadas

(38)

7/24/12

Storm

Cluster

Para processamento em cluster usar StormSubmitter método submitTopology()

builder.createRemoteTopology

(39)

7/24/12

Storm

Cluster

Zookeeper

Coordena as ações e troca de mensagens entre o Nimbus e os Supervisors

Todo o estado é armazenado no Zookeeper ou em disco Garante o retorno do processamento reestabelecendo o Nimbus ou Supervisors em caso de falha

Projeto Apache

(40)

7/24/12

Storm

Distributed RPC

Paralelizar processamento “on the fly” Executa processamento de funções

Funções são implementadas como Bolt

DRPCClient executa uma chamada remota Distributed Remote Procedure Call

DRPC Server coordena as ações

recebe request

envia request para topologia

(41)

7/24/12

LinearDRPCTopologyBuilder

seta o Spout

retorna o resultado para o DRPC Server

prove funcionalidades para os bolts executarem agregações de grupos de tuplas

Storm

Distributed RPC

Topologia ! ! ! ! ! DRPC Spout Último Bolt Outros nós da topologia DRPC Server Request ID e resultado Request ID e argumentos DRPC Client Resultado Função e argumentos

Server exposto usando Thrift API, possibilitando clientes de várias linguagens

(42)

7/24/12

Storm

Distributed RPC

Remote DRPC

configurar os endereços dos DRPC Servers (storm.yaml) Iniciar o DRPC Server

enviar as topologias ao cluster DRPC

StormSubmitter.submitTopology("reach", conf,

(43)

7/24/12

Storm

Local RPC

LinearDRPCTopologyBuilder createLocalTopology

(44)

7/24/12

Storm

(45)

7/24/12

Storm

Topologias transacionais

Introduzidas na versão 0.7

Commit é uma fase com sequêncial e ordenada Se existem 2 processos para commit este só é

executado e os dois processos executam sem falhas Duas fases: processamento e commit

Processamento ocorre em paralelo com n processos

Essas duas fases são chamadas de Storm Transaction Dados transacionais são armazenados no Zookeeper

(46)

7/24/12

AWS - S3

Storm

Suporte na Amazon WS Utilitário storm-deploy Instalar manualmente

Java 6 (mínimo, instale pelo menos o Java 7) Unzip

Python 2.6.6 Zookeeper ZeroMQ

(47)

7/24/12

Agenda

Storm

Definição e características

Cenários de uso e aplicações Storm

Storm e Hadoop

(48)

7/24/12

Responsável pelo

Processamento dos dados

Hadoop

HDFS e MapReduce

Responsável por distribuir e armazenar dados no cluster

Processamento batch, ou em lote, como paradigma HDFS para armazenar dados (entrada e saída)

(49)

7/24/12 Topologia ! ! ! !

Storm

Topologia

Segundo Bolt processa o conteúdo

Primeiro Bolt grava o “tweet” no HDFS (Hadoop REST API) e gera um stream para o próximo Bolt

Twitter Reader

(Spout) Twitter Writer (Bolt) Twitter Process (Bolt)

Spout acessa o Twitter

Busca hashtag (#TDC2013)

(50)

7/24/12 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! NoSQL Hadoop NoSQL Não Hadoop Banco MPP e RDBMS DW ! !

Storm e Hadoop

Arquitetura integrada

BI e Ferramentas de visualização ! Aplicações ! ETL e Integração de Dados ! ! ! ! ! ! ! !

Spout Bolt Bolt Bolt

Hadoop REST API

(51)

7/24/12

Storm e Hadoop

Arquitetura integrada

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! NoSQL Hadoop NoSQL Não Hadoop Banco MPP e RDBMS ! ! BI e Ferramentas de visualização ! Aplicações ! ! ! ! ! Dados estruturados e não estruturados ! ! ! ! ! ! ! ! ! ! ! ! !

Spout Bolt Bolt

Bolt

Hadoop REST API

(52)

7/24/12 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

BIG DATA

Eventos Milisegundos Complex Event Process Exploração interativa Segundos Hadoop HBase MongoDB Cassandra Relatórios Minutos Hadoop Hive ETL Batch Horas ETL

Big Data

Processamento

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

BIG DATA

Eventos Milisegundos Complex Event Process Exploração interativa Segundos Hadoop HBase MongoDB Cassandra Relatórios Minutos Hadoop Hive ETL Batch Horas ETL

(53)

7/24/12

OBRIGADO !!!!!

fabio@soujava.org.br

@fabiovelloso

facebook.com/soujava

@soujava

soujava.org.br

Referências

Documentos relacionados

Lugar Nome Ano NFed Clube Tempo Final TReac Pts FINA

7.2.3. As intervenções têm a duração máxima de 36 meses, podendo excecionalmente ser prorrogadas quando existam razões fundamentadas. Constitui fundamento bastante para

Serviço de Informação ao Cidadão (e-SIC) como sistema centralizado para o tratamento de pedidos de acesso à informação amparada pela Lei de Acesso (Lei 12.527/2011),

Essa multiforme sabedoria de Deus, que tudo criou pelo poder so brenatural de sua palavra, a ponto de trazer à existência todas as coisas, a partir do nada

forma a comprovar que os preços registrados permanecem compatíveis com os praticados no mercado, condição indispensável para a solicitação da aquisição e/ou

Referência ao anexo I, secção I.1, da directiva: Pontos 5.4.1.1.1 e 5.4.1.1.6. Teor do anexo da directiva: Conteúdo do documento de transporte... Teor da legislação nacional:

Para retornar um canal removido à sua lista, digite o número do canal com o seu controle remoto e faça o mesmo procedimento acima, porém deixe o SKIP na opção ".. Portanto

1. Os interessados nesta licitação deverão, às suas expensas obter as informações necessárias à correta avaliação dos custos e prazos que terão para o cumprimento do