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

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

Trabalhando com grandes quantidades de dados Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento.

Apresentações semelhantes


Apresentação em tema: "Trabalhando com grandes quantidades de dados Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento."— Transcrição da apresentação:

1 Trabalhando com grandes quantidades de dados Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Disciplina: TECC – Analise de Dados 2 Período: 2015.2 Professores: Andrey Brito, Leandro Balby

2 Nas última aulas Exploração dos dados e estatística descritiva Coleta Pré-processamento Sumarização Análise Interpretação Est. Descritiva: Como resumir conjuntos de números? Box plots, scatter plots Médias/medianas/moda, dispersão (variância, faixa), distribuição (histograma) Amostragem

3 Nas última aulas O primeiro problema: Exercitar a exploração (usando R como ferramenta) Antes disso, uma breve introdução sobre computação na nuvem

4 Problema 2: introdução a Big Data Ferramentas de big data 1.Usando a Cloud: criar uma imagem com Hadoop local, ao ser instanciada, essa imagem monta um volume (que poderia ter alguns dados), lista o conteúdo do volume e faz um upload da listagem para o Swift 1.Resultado: uma imagem/snapshot, um apontador para o Swift com os resultados e um relatório com o que foi feito 2.Usando Hadoop localmente: uma análise usando MapReduce 1.Resultado: relatório com os dados de entrada, código MapReduce e os dados de saída 3.Submetendo uma tarefa MapReduce no Sahara 1.Relatório: Escalabilidade? Comparação com R?

5 O que é Cloud Computing (aka. Computação na nuvem)? Uma forma de oferecer recursos de TI que permite que usuários comprem recursos... Sob demanda; De forma automática; Com uma granularidade adequada às suas necessidades; Cuja utilização será medida de forma acurada; (Exemplos de recursos: espaço de armazenamento, capacidade de executar tarefas, capacidade de comunicação)

6 O que é Cloud Computing (aka. Computação na nuvem)? Uma forma de oferecer recursos de TI que permite que usuários comprem recursos... Sob demanda; Só são adquiridos quando necessário De forma automática; Não envolve negociações entre humanos (De certa forma) Rapidamente adquiridos Com uma granularidade adequada às suas necessidades; Você compra um recurso na quantidade adequada Não compra um servidor inteiro, não compra um disco inteiro Cuja utilização será medida de forma acurada; É possível medir armazenamento, transferências “em bytes” É possível medir processamento em tempo de CPU (mais sobre isso depois...)

7 Por que cloud computing? Se fala muito nisso, é uma moda? Vai passar? O que alguém poderia ganhar com isso? Você não se preocupa em montar a infraestrutura Você não se preocupa em manter a infraestrutura Você não se preocupa em dimensionar a infraestrutura

8 Por que cloud computing? Se fala muito nisso, é uma moda? Vai passar? Por que é útil! Reduz custo! Cobrança mais justa; maior confiabilidade; Você tem um gerador elétrico próprio? O que alguém poderia ganhar com isso? Você não se preocupa em montar a infraestrutura Comprar equipamentos, esperar chegarem, instalá-los Você não se preocupa em manter a infraestrutura Quando alguma coisa quebra, quando o técnico vem? Quanto tempo dura? Quanto custa? Você não se preocupa em dimensionar a infraestrutura Superdimensionado? Subdimensionado? Não seria justo falar de infraestrutura como um item só!

9 Modelos de implantação Participantes: consumidores, provedores e clientes Consumidores: compram recursos computacionais Provedores: vendem recursos Clientes: usam serviços dos consumidores (podem ser eles mesmos os consumidores finais) Implantação física no provedor Nuvem privada Nuvem comunitária Nuvem pública Nuvem híbrida

10 Modelos de implantação Participantes: consumidores, provedores e clientes Implantação física no provedor Nuvem privada Todos os consumidores estão vinculados à mesma organização Uma empresa grande pode lucrar com a provisão de um serviço de nuvem Nuvem comunitária Um conjunto de organizações compartilham a nuvem Nuvem pública Consumidores não tem vínculos com os provedores Qualquer um pode se tornar um usuário Nuvem híbrida Combina caraterísticas da nuvem pública com características da nuvem privada

11 Modelos de implantação Fonte: http://blog.nskinc.com/IT-Services-Boston/bid/32590/Private-Cloud-or-Public-Cloud

12 Modelos de implantação (2) Características comuns Dependem do bom funcionamento da rede Usuários têm pouco controle da localização exata do recurso As cargas são balanceadas de forma transparente Todos os usuários estão sujeitos ao problemas de compartilhamento de máquinas Perigo de erros de segurança no servidor Segurança: controle e visibilidade Quem pode acessar o quê? Recursos são remotos, proteção precisa usar tecnologias de rede Redes virtuais privadas (Virtual Private Network – VPN) Firewall

13 Problemas com a nuvem (2013) Dropbox 10/01 – 16 h: usa a Amazon mas a culpa não teria sido dela 30/05 – 1,5 h: sem explicação Facebook 28/01 – 3 h: Aparentemente um problema de DNS 18/05 – 1 h: sem justificativa Bing, 02/02 – 2 h: manutenção programada teria dado errado Microsoft Azure Storage, 22/02 – +12 horas: certificado expirado Google drive 18/03 – 17 h: problemas no software controle de rede (balanceamento) 10/07 – 1 h: (vários serviços) sem explicação AWS 25/08 – 1h: problema em um dispositivo de rede 13/09 – 2h: problemas de rede http://www.infoworld.com/slideshow/107783/the-worst-cloud-outages-of-2013-so-far-221831#slide4

14 Modelos de serviço Até agora consideramos que a cloud oferece “recursos” O que podem ser estes recursos? Infraestrutura: máquinas, discos e ligações com a Internet (virtuais) Processamento, armazenamento, comunicação Infraestrutura como um serviço: IaaS (Infrastructure as a Service) Plataformas: ambientes que rodam aplicações Java, Go, MapReduce (ou até Matlab, R) Plataforma como um serviço: PaaS (Platform as a Service) Software: um sistema pronto para usar (primeiro modelo!) Google Docs, Webmail Sofware como um Serviço: SaaS (Software as a Service)

15 Responsabilidades Fonte: http://blogs.technet.com/b/kevinremde/archive/2011/04/03/saas-paas-and-iaas-oh-my-quot-cloudy-april-quot-part-3.aspx

16 IaaS – Infraestructure as a Service O consumidor acessa máquinas virtuais (VM) é disponibilizadas No caso de VMs Linux: programas podem ser instalados via linha de comando remota (SSH) No caso de Windows: pode ser usada uma conexão de desktop remoto (RDP) Componentes (no provedor) Gerenciador de nuvem (portal para o consumidor) Gerenciador de cluster (lida com pedidos de alocação) Supervisor (gerencia as VMs em um servidor físico)

17 Exemplo – Repassando o risco/custo Fonte: M. Armbrust, A. Fox, R. Griffith et. al. Above the Clouds: A Berkeley View of Cloud Computing. Relatório técnico. Fevereiro, 2009. Eixo vertical: recursos Eixo horizontal: tempo

18 IaaS (Infrastucture as a Service) Infraestrutura como um serviço Máquinas (virtuais) alugadas na hora (ou até no minuto) Seu sistema operacional, acesso remoto total, configure como queira Principais provedores Amazon Web Services (AWS) Microsoft Azure RackSpace Exemplo de custo AWS: 8 CPUs, 32 GB de RAM, disco sob-demanda  US$ 0.479 (US$ 0.764 no mercado “oportunista” e US$ 0,277 se for hora fechada) Azure: 8 CPUs, 14 GB, 240 GB de disco  US$ 0,376 (US$ 1 se for com 56 GB de RAM)

19 PaaS O usuário cria aplicações online ou faz o upload da sua aplicação Não se preocupa com detalhes da plataforma Não se preocupa com detalhes de execução (VMs, escalabilidade) Componentes Consumidor recebe um ambiente para o desenvolvimento e gerência da aplicação e um ambiente de execução As vezes, tudo funciona via Web (nada a ser instalado pelo desenvolvedor ou pelo cliente) Mas um problema é que isso pode significar dificuldade de migração (sem portabilidade) Administração centralizada pelo consumidor

20 PaaS – Plataforma as a Service Plataforma como um serviço Ambientes de execução já configurados Não é preciso lidar com a instalação e configuração das máquinas Exemplos para processamento de dados ElasticMapReduce e Kinesis (AWS) HDInsight (Microsoft) Managed Cloud BigData (RackSpace) Custos semelhantes ao da infraestrutura utilizada, porém menos controle IDC estima que até 2020, 40% da processamento de Big Data será em nuvens públicas http://idcdocserv.com/1414

21 Usando o potencial da nuvem

22 Rodando aplicações na nuvem Você tem uma aplicação rodando no seu laptop... O que você precisa para usar a nuvem?

23 Rodando aplicações na nuvem Você tem uma aplicação rodando em seu laptop O que você precisa? Identificar uma imagem (de SO) que seja compatível com sua aplicação (ou cria-la) Alugar uma VM que caiba toda a aplicação, passando a imagem que você escoheu Transferir sua aplicação e dos dados

24 Vantagens Se sua máquina ficar pequena para a aplicação, só precisa de um reboot Em períodos que você não precisa da aplicação, você pode pausá-la e depois continua-la Fazer backup é tão simples quanto fazer um snapshot de sua máquina virtual Snapshot = cópia do disco, armazenada separadamente na nuvem (normalmente replicado), que pode ser usado para disparar outras máquinas

25 O que pode ser feito de diferente, melhor?

26 Antes de continuar... Componentes básicos da cloud... Instâncias: VMs com armazenamento local, não persistente Armazenamento de bloco: discos persistentes que podem ser “montados” por uma VM, podem ser depois desmontados e montados em outra Armazenamento de objeto: armazenamento de blocos de dados que não são modificados (inseridos, removidos, sobrescritos) Redes: controlam quem fala com quem, incluindo redes privadas, VPNs, load-balancers

27 O que pode ser feito de diferente? Modelo tradicional Aplicações têm alta disponibilidade (talvez 99.9%, 8h46 min/ano) Hardware precisa ter altíssima disponibilidade ($$$$, RAID, fontes redundantes, switches e placas redundantes,...) Máquinas menores ou maiores (scale up), bem configuradas Modelo “cloud/gado/rebanho” Infraestrutura barata (“shit happens”) Aplicações com alta disponibilidade Muitas máquinas (scale out) Tanto faz usar 1 máquina por 10h ou 10 máquinas por 1h

28 Outro exemplo interessante: oportunismo Uma VM muito grande, com 36 processadores e 244 GB de RAM, custa R$ 25/hora O mercado de leilão (spot): a maior parte do tempo, desde que sem garantias, você consegue ela por R$ 2,50/hora Mas você pode perder a qualquer momento A aplicação de processamento tem que gerenciar as perdas Mais barato que a energia que você gastaria se tivesse uma máquina física de graça

29 O que vem a seguir? Computação na nuvem na prática OpenStack – middleware para nuvens privadas Criando e acessando VMs Criaremos contas para vocês Passamos tutoriais de como usar os serviços Depois, vocês exercitam Como criar e configurar uma VM (Linux) Como usar o armazenamento de bloco Como usar o armazenamento de objeto Como fazer uma análise estilo big data, mas com poucos dados

30 Processando Big Data

31 Como dividir o processamento de dados? 3 formas básicas… Dividir os itens a serem processados Dividir o trabalho de processamento de um item Também pode usar um estilo “linha de produção” (algo intermediário)

32 Decomposição do domínio (dos dados) Baseado em: Intel Software College Introduction to Parallel Programming with Java

33 Decomposição da tarefa Baseado em: Intel Software College Introduction to Parallel Programming with Java

34 Linha de produção (pipeline) Baseado em: Intel Software College Introduction to Parallel Programming with Java

35 Hadoop É uma ferramenta de processamento de lote Você escreve um programa qualquer no modelo de programação Entrega o programa e os dados E ela executa o programa para você O modelo de programação é o MapReduce Restringe a organização dos seus programas Qualquer algoritmo pode ser implementado nele Mas alguns seriam muito ineficientes, ou seja... Na prática, restringe o tipo de algoritmo Mas graças a isso consegue cuidar dos bastidores por você Se encaixa bem com o modelo de decomposição dos dados e de linha de produção

36 MapReduce (MR) O que o usuário faz? Especifica seleção/filtragem/transformação Especifica a agregação O que a ferramenta faz? Cria trabalhadores e instanciá-los remotamente Particiona e distribui a entrada Comunica dados intermediários, busca resultados Monitora máquinas e lida com falhas

37 Modelo de programação Map(chave, valor)  (chave’, valor’) Recebe uma chave de entrada e um valor Produz um ou mais pares Bom para: desagregar, filtrar, transformar, converter Reduce(chave, lista de valores)  (chave, valor’) Recebe uma chave de entrada e uma lista de valores Produz um (ou nenhum) par Chave é frequentemente a mesma e o valor é uma agregação de todos os valores da lista Bom para: agregar resultados parciais

38 Exemplo Contar palavras em um grande conjunto de dados Por que? Porque é simples Porque é a base para muitas outras operações Correção ortográfica usa palavras e termos frequentes Otimização para queries frequentes, tradução Identificação de padrões, predição Escalabilidade e eficiência aparente podem ter uma relação estranha…

39 Contando palavras – Pseudocódigo map(chave k, valor v) { // v’ é um “tokenizer”, por exemplo, criado a partir de v foreach p in v’: emit(p, 1); } reduce(chave k, valor [] lista) { int sum; foreach v in lista: sum += v; emit(k, sum); }

40 Exemplo de execução Vamos considerar 3 trabalhadores (workers) Cada trabalhador recebe um arquivo de entrada Arquivo 1: isto é um teste Arquivo 2: testando o hadoop Arquivo 3: testando com um teste

41 Exemplo de execução Vamos considerar 3 trabalhadores (workers) Cada trabalhador recebe um arquivo de entrada Arquivo 1: isto é um teste Arquivo 2: testando o hadoop Arquivo 3: testando com um teste

42 Saída do Map Worker 1: (isto 1), (é 1), (um 1), (teste 1). Worker 2: (testando 1), (hadoop 1). Worker 3: (testando 1), (com 1), (um 1), (teste 1).

43 Entrada do Reduce Reduce 1: (isto,[1]) Reduce 2: (é, [1]) Reduce 3: (testando, [1,1]) Reduce 4: (um, [1, 1]) Reduce 5: (Hadoop, [1]) Reduce 6: (com, [1]) Reduce 7: (teste, [1,1])

44 Saída do Reduce Reduce 1: – (isto 1) Reduce 2: – (é 1) Reduce 3: – (testando 2) Reduce 4: – (um 2) Reduce 5: – (Hadoop 1) Reduce 6: – (com 1) Reduce 7: – (teste 2)

45 Escalabilidade e eficência do código podem ter uma relação estranha: contar palavras assim parece ineficiente, mas escala.

46 Depois... Hadoop HDFS MapReduce Lembra daquele slide sobre paralelização? Outros... (Pig, Hive, Spark) Sahara Spark


Carregar ppt "Trabalhando com grandes quantidades de dados Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento."

Apresentações semelhantes


Anúncios Google