arquiteturas, tecnologias e desafios para análise de bigdata

32
 Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade Arquiteturas, Tecnologias e Desafios para Análise de BigData Sandro S. Andrade Instituto Federal de Educação, Ciência e Tecnologia (IFBa) Grupo de Pesquisa em Sistemas Distribuídos, Otimização, Redes e Tempo-Real (GSORT) [email protected] @andradesandro

Upload: sandro-andrade

Post on 06-Dec-2014

201 views

Category:

Software


4 download

DESCRIPTION

Arquiteturas, Tecnologias e Desafios para Análise de BigData

TRANSCRIPT

Page 1: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Arquiteturas, Tecnologias e Desafios para Análise de BigData

Sandro S. AndradeInstituto Federal de Educação, Ciência e Tecnologia (IFBa)Grupo de Pesquisa em Sistemas Distribuídos, Otimização,

Redes e Tempo-Real (GSORT)

[email protected]@andradesandro

Page 2: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Agenda

● Motivação● O MapReduce● O Hadoop● Design Patterns para MapReduce● Hadoop – Projetos Relacionados● Desafios Atuais● Conclusão

Page 3: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Motivação

Page 4: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Motivação

Page 5: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Motivação

Page 6: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Motivação

Page 7: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Motivação

● BigData:– Termo utilizado para descrever qualquer conjunto de

dados grande e complexo o suficiente para inviabilizar o uso das tecnologias tradicionais de armazenamento e processamento

● Características:– Volume– Variedade– Velocidade– Variabilidade– Complexidade

Page 8: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Motivação

● BigData hoje:– eBay.com: cluster Hadoop de 40PB para busca,

recomendações e propaganda– Amazon.com: armazenamentos de 7.8, 18.5 e 24.7TB– Wallmart: 1 milhão de transações de clientes por hora,

armazenadas em uma base de 2.5PB– Facebook: 50 bilhões de fotos, 600TB de novos dados

por dia, 684.478 postagens por minuto– Youtube: 48h de novos vídeos por minuto– Instagram: 3600 novas fotos por minuto

Page 9: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Motivação

● BigData hoje:– Colisor LHC: 15 PB por ano– Radiologia: 69 PB por ano– Square Kilometre Array (SKA): 0.5 ZB por ano em 2022– Observação da terra: 4PB por ano– Análise de dados sísmicos: alguns TB por dia

Page 10: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Motivação

● Porque analisar todos estes dados ?– Marketing mais efetivo– Aumento nos lucros– Redução de custos– Melhorias nas tamadas de decisão– Sistemas de recomendação– Análise de risco– Smart Cities

Page 11: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O MapReduce

● Estilo arquitetural e paradigma de computação para processamento distribuído de dados que residem em uma grande quantidade de computadores

● Criado pelo Google e popularizado em 2004, no artigo “MapReduce: Simplified Data Processing on Large Clusters”

● Logo depois o projeto Hadoop foi criado por Doug Cutting, financiado pelo Yahoo! e passou a integrar a Apache Foundation

Page 12: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O MapReduce

● Visão geral do MapReduce:– Dados são armazenados em um sistema de arquivos

distribuído, implementado em milhares de máquinas em um cluster

– Jobs são implementados como tarefas de map e tarefas de reduce que executam em um cluster

– Cada tarefa processa um pequeno subconjunto dos dados, de modo que a carga é dividida entre as máquinas do cluster

Page 13: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O MapReduce

● Visão geral do MapReduce:– A tarefa de map geralmente faz carga, parse,

transformação e filtragem de dados– A tarefa de reduce é responsável por tratar um

subconjunto dos dados de saída das tarefas de map– Dados intermediários são copiados das tarefas map

para as tarefas reduce, de modo a agregar e agrupar os dados de saída

– Um amplo conjunto de problemas pode ser resolvido com este paradigma, desde agregações numéricas simples até joins e produtos cartesianos

Page 14: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O MapReduce

● Visão geral do MapReduce:

Page 15: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O MapReduce

● Visão geral do MapReduce – exemplo de job:

Page 16: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O Hadoop

● Framework open source para armazenamento e processamento de BigData em larga-escala

● Serviços:– Sistema de arquivos distribuído (HDFS)– Framework para execução de aplicações paralelas

(YARN)– MapReduce como um dos modelos de computação

distribuída suportados no YARN● Mantido pela Apache Foundation

– http://hadoop.apache.org/

Page 17: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O Hadoop

● Excelente escalabilidade e tolerância a falhas● Jobs podem ser programados em Java ou em

outras linguagens (via Hadoop Streaming)● Boa escalabilidade horizontal (rebalanceamento)● Cerca de 190 parâmetros de configuração● Usos atuais:

– Yahoo!: 42.000 máquinas rodando Hadoop– Facebook: 100PB de armazenamento no HDFS, 2.000

máquinas (8/16 núcleos, 32GB RAM, 12TB HD). 0.5 PB de novos dados por dia

Page 18: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O Hadoop

● Arquitetura do HDFS:

Page 19: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O Hadoop

● Arquitetura do YARN:

Page 20: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O Hadoop

● Arquitetura do YARN:

Page 21: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O Hadoop

● Arquitetura do YARN:

Page 22: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O Hadoop

● YARN - escalonadores:– Fair Scheduler:

● Desenvolvido pelo Facebook● Jobs são agrupados em pools● Garante-se a cada pool uma disponibilidade mínima de

recursos● O excesso de capacidade é dividido entre os jobs

– Capacity Scheduler:● Desenvolvido pelo Yahoo!● Jobs são submetidos a filas, que usam uma fração dos

recursos● Recursos livres podem ser alocados a filas além da sua

capacidade total

Page 23: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O Hadoop

● Exemplo – contador de palavras – main

  public static void main(String[] args) throws Exception {      Configuration conf = new Configuration();      String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();      if (otherArgs.length != 2) {          System.err.println("Usage: wordcount <in> <out>");          System.exit(2);      }      Job job = new Job(conf, "word count");      job.setJarByClass(WordCount.class);      job.setMapperClass(TokenizerMapper.class);      job.setCombinerClass(IntSumReducer.class);      job.setReducerClass(IntSumReducer.class);      job.setOutputKeyClass(Text.class);      job.setOutputValueClass(IntWritable.class);      FileInputFormat.addInputPath(job, new Path(otherArgs[0]));      FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));      System.exit(job.waitForCompletion(true) ? 0 : 1);  }

Page 24: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O Hadoop

● Exemplo – contador de palavras – mapper

  public static class TokenizerMapper        extends Mapper<Object, Text, Text, IntWritable>{          private final static IntWritable one = new IntWritable(1);      private Text word = new Text();            public void map(Object key, Text value, Context context                      ) throws IOException, InterruptedException {          StringTokenizer itr = new StringTokenizer(value.toString());          while (itr.hasMoreTokens()) {            word.set(itr.nextToken());            context.write(word, one);          }      }  }

Page 25: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

O Hadoop

● Exemplo – contador de palavras – reducer

  public static class IntSumReducer        extends Reducer<Text,IntWritable,Text,IntWritable> {      private IntWritable result = new IntWritable();

      public void reduce(Text key, Iterable<IntWritable> values,                          Context context                         ) throws IOException, InterruptedException {          int sum = 0;          for (IntWritable val : values) {              sum += val.get();          }        result.set(sum);        context.write(key, result);      }  }

Page 26: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Design Patterns para MapReduce

● Numerical Summarizations● Inverted Index Summarizations● Counting with Counters● Filtering● Top Ten● Structured to Hierarchical● Reduce Side Join● Replicated Join● … muitos outros

Page 27: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Hadoop – Projetos Relacionados

● Ambari: provisionamento, gerenciamento e monitoramento de clusters Hadoop

● Cassandra: banco de dados com escalabilidade linear e alta disponibilidade (nenhum ponto único de falha)

● HBase: banco de dados não relacional desenvolvido sobre o HDFS

● Hive: análise de dados através de linguagem SQL-like (HiveQL). Desenvolvido pelo Facebook e Netflix

Page 28: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Hadoop – Projetos Relacionados

● Manout: biblioteca escalável para aprendizado de máquina

● Pig: análise de dados com linguagens de alto nível

● Spark: mapreduce de alto desempenho● Tez: processamento de dados com grafos

direcionados acíclicos● ZooKeeper: coordenação e comunicação em grupo● Giraph: processamento interativo

de grafos

Page 29: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Hadoop – Ecossistema

● Commits por empresa:

Page 30: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Desafios Atuais

● Garantia de QoS em clusters Hadoop● Controle e sintonia automática de parâmetros● Elasticidade automática● Mecanismos de alto nível (próximos ao negócio)

para análise de dados

Page 31: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Conclusão

● Escalabilidade como requisito não-funcional primordial

● Foco na acomodação de falhas de hardware● O MapReduce é interessante, mas limita o projeto

e implementação dos jobs● É necessário formação profissional na área de

sistemas distribuídos, arquitetura de software e análise de desempenho

● Análise de BigData como diferencial competitivo nas organizações

Page 32: Arquiteturas, Tecnologias e Desafios para Análise de BigData

   

Arquiteturas, Tecnologias e Desafios para Análise de BigData – Sandro S. Andrade

Obrigado !

Sandro S. AndradeInstituto Federal de Educação, Ciência e Tecnologia (IFBa)Grupo de Pesquisa em Sistemas Distribuídos, Otimização,

Redes e Tempo-Real (GSORT)

[email protected]@andradesandro