Tecnologias para mineração de dados nas nuvens
Upcoming SlideShare
Loading in...5
×
 

Tecnologias para mineração de dados nas nuvens

on

  • 1,187 views

Apresentação de tecnologias para mineração de dados nas nuvens com windows azure e hadoop

Apresentação de tecnologias para mineração de dados nas nuvens com windows azure e hadoop

Statistics

Views

Total Views
1,187
Views on SlideShare
1,141
Embed Views
46

Actions

Likes
1
Downloads
7
Comments
0

1 Embed 46

http://www.azuris.com.br 46

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Tecnologias para mineração de dados nas nuvens Tecnologias para mineração de dados nas nuvens Presentation Transcript

  • • • • • • • • Mestre em Tecnologia (UTFPR) Bacharel em Processamento de Dados Desenvolvedor a mais de 18 anos.... Mono Hacker desde 2003 Linguagens Fluente: C#, Java, PHP, Outras: C++, C , Pascal, Python, Ruby, Boo, etc. Atualmente atua como desenvolvedor/consultor para algumas empresas:
  • • O conceito de computação em nuvem refere-se à utilização da memória, processamento e das capacidades de armazenamento e cálculo de servidores compartilhados e interligados por meio da Internet, seguindo um modelo computacional (Grid Computing) capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas.
  • • • • • • Alta disponibilidade Recuperação de Falhas Backup é inerente ao sistema Segurança dos dados Escalonamento sob demanda
  • • DaaS - Development as a Service ou Desenvolvimento como Serviço : – as ferramentas de desenvolvimento tomam forma no cloud computing como ferramentas compartilhadas, ferramentas de desenvolvimento web-based e serviços baseados em mashup. • SaaS - Software as a Service ou Software como Serviço : – uso de um software em regime de utilização web (p.ex.: Google Docs , Microsoft Sharepoint Online). • CaaS - Communication as a Service ou Comunicação como Serviço : – uso de uma solução de Comunicação Unificada hospedada em Data Center do provedor ou fabricante.
  • Cloud Computing é dividida em cinco tipos: • IaaS - Infrastructure as a Service ou Infraestrutura como Serviço: – quando se utiliza uma porcentagem de um servidor, geralmente com configuração que se adeque à sua necessidade.(p. Ex: Hadoop) • PaaS - Plataform as a Service ou Plataforma como Serviço (em português): – utilizando-se apenas uma plataforma como um banco de dados, um web-service, etc. (p.ex.: Windows Azure).
  • • Um plataforma como serviços – Aplicações distribuídas com framework consistente – Armazenamento de Dados • TABLE, BLOBs e SQL Azure – Pagamento sob Demanda – Escalonamento sob Demanda – 7 Mega Datacenters já construídos
  • Suas Aplicações Service Bus Workflow Database Analytics Identity Contacts Access Control … Reporting … Devices … Compute Storage Manage … …
  • • Blobs – prover uma interface simples para armazenamento de arquivosnomeados com metadados para o arquivo • Tables –armazenamento estruturado. Uma tabela é um conjunto de entidades, que contêm um conjunto de propriedades • Queues – Fornecer armazenamento confiável e entrega de mensagens para uma aplicação
  • Account Container Blob Block IMG001.JPG Pictures IMG002.JPG Account Block AAAA Movies MOV1.AVI Block AAAB Block AAAC
  • Account Queue Message 128x128, http://… Thumbnail Jobs 256x256, http://… Account http://… Indexing Jobs http://…
  • Account Table Entity Name=…hash=… Users Name=…hash=… Account Tag=…id=… PhotoIndex Tag=…,id=…
  • • • • • Grandes volumes de dados (Tera Bytes) Processamento dos dados Tolerância a falha Distribuição do serviço
  • • Requisitos – – – – 500M+ usuário únicos por mês Bilhões de eventos interessantes por dia Necessidade de scalabilidade massiva PB’s de storage, milhares de arquivos, 1000’s de nós • Necessidade de ter baixo custo – Uso de hardware comum – Compartilhar recursos com vários projetos – Fornecer escala quando necessário • Precisa de infraestrutura confiável – Deve ser capaz de lidar com falhas - hardware, software, networking • A falha é esperada, e não uma exceção – Transparente para as aplicações • muito caro para construir confiabilidade em cada aplicação • A infra-estrutura do Hadoop prove essas capacidade.
  • • Histórico – – – – Em 2004: Google publica um artigo sobre MapReduce 2005: Doug Cutting integra MapReduce no Hadoop 2006: Doug Cutting contratado pelo Yahoo Yahoo! tornou-se o promeiro contribuidor em 2006 • Escalou de 20 node para 4000 node clusters em 2010 – 2008: Cloudera é Fundada (www.cloudera.com) • Características – Escrito em Java, OpenSource – Roda em hardware comum – Linux, Mac OS/X, Windows, and Solaris
  • • O Apache Hadoop é um projeto desenvolvimento como open-source software para escalavel , confiável e processamento distribuído. Inclui: – MapReduce e Sistema de arquivos distribuído framework para for large commodity clusters – Master/Slave – JobTracker organiza todas as tarefas e coordena o fluxo de dados entre os TaskTrackers – TaskTracker manipula todos os worker no node – Worker Task executa as operações de map ou reduce – Integra-se com HDFS com os dados localmente
  • • Um sistema escalável e confiável para armazenamento compartilhado e análises. • Ele automaticamente trata da replicação de dados e da falhas em cada nó. • Ele faz o trabalho duro - desenvolvedor pode se concentrar em processamento da lógica de dados • Permite que os aplicativos usem petabytes de dados em paralelo
  • • Hadoop Core – Distributed File System – MapReduce Framework • Pig (criado pelo Yahoo!) – Parallel Programming Language e Runtime • Hbase (criado pelo Powerset) – Table storage for semi-structured data • Zookeaper (criado pelo Yahoo!) – Coordinating distributed systems • Hive (criado pelo Facebook) – SQL-like query language and metastore
  • • • • • • Buscapé / Ebehavior Amazon/A9 Facebook Google IBM • • • • • • Joost Last.fm New York Times PowerSet Veoh Yahoo!
  • • Colaboração com grandes universidades de pesquisa(via open cirrus) – – – – Carnegie Mellon University The University of California at Berkeley Cornell University The University of Massachusetts at Amherst joined • Seed Facility: Datacenter na caixa (DiB) – 500 nodes, 4000 cores, 3TB RAM, 1.5PB disk – Conexão de alta velocidade com a internet – Localizado no Yahoo no campu Coorporativo • Roda Hadoop • Tem sido usado no últimos 2 anos
  • • Cluster em produção – – – – – 4800 cores, 600 máquina, 16GB por máquina – Abril/2009 8000 cores, 1000 máquinas, 32 GB por máquina – julho/2009 4 SATA discos de 1 TB por máquina 2 níveis de rede hierarquica, 40 máquinas por rack Total do tamanho do cluster 2 PB, projetado para 12 PB no Q3 2009 • Cluster de Teste • 800 cores, 16GB cada
  • Tipicamente em 2 níveis – Nós são PCs comuns – 30-40 nodes/rack – Rack em Uplink de 3-4 gigabit – Rack-interno de 1 gigabit
  • • Inspirado em GFS • Projetado para trabalhar com arquivos muito grandes • Executado em hardware commodity • Streaming de acesso a dados • Replicação e localidade
  • • Projetado para escalar a petabytes de armazenamento, e correr em cima dos sistemas de arquivos do sistema operacional subjacente. • “NameNode” - Master – Gerencia o sistema de arquivos namespace Conhece todos os blocos de localização – lida com a replicação, exclusão, criação • “DataNode” - Slave (workers) – Manter os blocos de dados – Relatório de volta para namenode suas listas de blocos periodicamente – lida com a recuperação de dados
  • • Dados de entrada é copiado para HDFS é dividido em blocos • Cada blocos de dados é replicado para várias máquinas
  • • Sistema de Arquivos Distribuído para grande Volumes – 10K nodes, 100 milhões de arquivos, 10 PB • Hardware Comum (comodite) – Os arquivos são replicados esperando falha de hardware – Detecção de falhas e recuperação • Otimizado para Batch Processing – Os dados ficam expostos, a computação pode ser movida onde os dados estiverem • Roda em diversos OS (win, linux, mac)
  • • MapReduce é um modelo de programação e implementação associados para o processamento e geração de grandes conjuntos de dados (Jeffrey Dean e Sanjay Ghemawat, 2004) – A ideia tem mais de 40 anos – Baseado em um modelo de programação funcional (como Lisp, Ml, etc) – Processamento de dados base em batch – A abstração limpa para programadores – Paralelização automática e distribuição – Tolerância a falhas
  • • Input: – Registros de alguma fonte de dados (por exemplo, linhas de arquivos, linhas de um banco de dados, ...) estão associados no par (chave, valor) • Output: – Um ou mais valores intermediários no formato (chave, valor) • Exemplo: (palavra, numero_de_ocorrencias)
  • map (k, v): if (isPrime(v)) then emit (k, v) (“foo”, 7) (“foo”, 7) (“test, 10) (nothing)
  • Depois que a fase de mapeamento terminar, todos os valores intermediários vão para uma chave de saída, estes são combinadas em uma lista • Input – Valores Intermediários : – Example: (“A”, [42, 100, 312]) • Output – Normalmente, apenas um valor final por chave – Exemplo (“a”, 454)
  • reduce (k, vals): sum = 0 foreach int v in vals: sum += v emit (k, sum) (“A”, [42, 100, 312]) (“A”, 454) (“B”, [12, 6, -2]) (“B”, 16)
  • map (String key, String value): // key: nome do documento // value: conteudo do documento for each word w in value: EmitIntermediate(w, "1");
  • reduce(String key, Iterator values): // key: a palavra // values: a lista de valores int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result));
  • • Os passos básicos para a execução de um trabalho Hadoop são: – Compile o seu trabalho em um arquivo JAR – Copiar dados de entrada no HDFS – Execute hadoop passando para o JAR os parametros relevantes – Monitorar tarefas via interface Web (opcional) – Examinar a saída quando o trabalho estiver completo
  • hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar pi 10 100 hadoop fs -mkdir input hadoop fs -put /etc/hadoop-0.20/conf/*.xml input hadoop-0.20 fs -ls input hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar grep input output 'dfs[a-z.]+' hadoop-0.20 fs -mkdir inputwords hadoop-0.20 fs -put /etc/hadoop-0.20/conf/*.xml inputwords hadoop-0.20 fs -ls inputwords hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-*-examples.jar grep inputwords outputwords 'dfs[a-z.]+'
  • • Mahout - scalable machine learning – Mahout é uma biblioteca de código aberto da Apache de máquina de aprendizagem. Os algoritmos que implementa caiem sob o guardachuva amplo de "aprendizagem de máquina", ou "inteligência coletiva“. – Motores de filtragem Colaborativa – Motor de recomendação – Clustering e classificação.
  • • • • • • • • • • • Collaborative Filtering User and Item based recommenders K-Means, Fuzzy K-Means clustering Mean Shift clustering Dirichlet process clustering Latent Dirichlet Allocation Singular value decomposition Parallel Frequent Pattern mining Complementary Naive Bayes classifier Random forest decision tree based classifier
  • • • • • www.azuris.com.br Alessandro de Oliveira Binhara binhara@gmail.com binhara@azuris.com.br